SpringBoot微服务框架概述

4年前 (2022) 程序员胖胖胖虎阿
535 0 0

SpringBoot微服务框架

    • 2. Spring Boot 微服务框架的特点
    • 3. Spring Boot 应用场景
    • 4. SpringBoot的第一个应用
    • 5. Springboot引导类的main方法有什么作用?
    • 6. SpringBoot的场景启动器
    • 7.@SpringBootApplication探究
    • 8.如何配置SpringBoot的配置文件?

1. Spring Boot概述

SpringBoot是一个微服务框架,基于Spring的,换句话就是Spring中有的功能,在SpringBoot中都能实现。

SpringBoot就是简化了Spring的开发。

微服务与单体架构的区别

  • 单体架构所有的模块全都耦合在一块,代码量大, 维护困难 ,微服务每个模块就相当于一个单独的项目,代码量明显减少,遇到问题也相对来说比较好解决。
  • 单体架构所有的模块都共用一个数据库, 存储方式比较单一 ,微服务每个模块都可以使用不同的存储方式(比如有的用redis,有的用mysql等),数据库也是单个模块对应自己的数据库。
  • 单体架构所有的模块开发所使用的技术一样,微服务每个模块都可以使用不同的开发技术, 开发模式更灵活 。

2. Spring Boot 微服务框架的特点

  1. SpringBoot就是简化了Spring的开发
  2. 嵌入的Tomcat,无需部署WAR文件,使部署变得简单
  3. 简化Maven配置 ,提供了多种场景启动器,使配置变得简单
  4. 自动配置Spring ,提供了默认配置,使配置变得简单
  5. 提供生产就绪型功能,如指标,健康检查和外部配置 ,使监控变简单

3. Spring Boot 应用场景

  1. Spring能够应用的场景
  2. javaWeb应用
  3. 微服务

4. SpringBoot的第一个应用

需求:在浏览器端发送一个hello请求,服务器响应回浏览器一个字符串Hello World

  1. 在Idea中创建Maven工程
  2. 导入SpringBoot相关依赖
  3. 编写主程序启动SpringBoot应用,编写SpringBoot的引导类
    ···
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    //这个类就是SpringBoot的引导类
    @SpringBootApplication
    public class SpringBootApplicationMain {
    public static void main(String[] args) {

    //固定的写法
    SpringApplication.run(SpringBootApplicationMain.class,args);

    }
    }
    ···

  4. 编写controller,运行main方法
    ···
    @Controller
    public class HelloController {
    @RequestMapping("/hello")
    @ResponseBody
    public String hello(){

    return "Hello World";

    }
    }
    ···

    与Spring开发的不同

  • 没有配置 配置文件
  • 没有部署tomcat
  • 没有大量的Maven依赖

5. Springboot引导类的main方法有什么作用?

SpringBoot启动时通过main方法启动,主要做两方面工作:

1.初始化Spring容器

2.启动tomcat运行项目

SpringBoot在生产环境的部署

  1. 导入一个打包jar包的插件,将项目打包成jar包

    可将项目打包成可执行的jar包,简化了SpringBoot的应用部署,先导入如下插件:
    ···
    <build>

    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>
                spring-boot-maven-plugin
            </artifactId>
        </plugin>
    </plugins>

    </build>
    ···

  2. 直接运行这个jar包

SpringBoot微服务框架概述

6. SpringBoot的场景启动器

什么是场景启动器?有什么作用?

spring-boot-starter

作用:Spring Boot的核心启动器,包含了自动配置、日志和YAML

查看parent的starter

SpringBoot微服务框架概述

SpringBoot微服务框架概述

SpringBoot读取resources下的也就是类路径下的application开头的三种配置文件。

parent的stater继承于dependencies

SpringBoot微服务框架概述

这里包含了Spring的依赖,还包含了很多框架及工具的依赖,这些依赖都已经定义好了版本,版本是由SpringBoot的版本来决定的,这些依赖的版本一定是兼容的。

查看web的starter

  1. tomcat的启动器

SpringBoot微服务框架概述

  1. spring-web和spring-mvc的依赖

7.@SpringBootApplication探究

@SpringBootApplication注解的作用:

@SpringBootApplication是SpringBoot的主配置类,由该注解配置的类,Springboot 就会运行main方法启动SpringBoot应用

@SpringBootApplication注解是一个组合注解,由三个主要的注解组成

  1. @SpringBootConfiguration注解

    包含了@Configuration注解 修饰的类是一个配置类

    引导类本身就是一个配置类
    ···
    @SpringBootApplication
    public class SpringBootApplicationMain {
    public static void main(String[] args) {

    //初始化Spring的IOC容器
    ApplicationContext context =SpringApplication.run(SpringBootApplicationMain.class,args);
    Person person = (Person)context.getBean(Person.class);
    System.out.println(person);

    }
    @Bean
    public Person getPerson(){

    return new Person();

    }
    ···
    或者单独卸载一个类中
    ···
    //定义成配置类
    //Spring容器在初始化时,自动执行配置类中所有@Bean修饰的方法
    //将这些方法返回的对象,注册在IOC容器中
    @Configuration
    public class MyConfig {
    @Bean("person")
    public Person getPerson(){

    return new Person();

    }
    }
    ···

  2. @ComponentScan注解 :扫描当前类(引导类)所在的包及子包下的含有@Component注解的类,注册为Bean,相当于以前在Spring配置文件中配置的ComponentScanner这个bean
    在第一个应用中的 HelloController类一定要在引导类的包中或其子包中
  3. @EnableAutoConfiguration注解:开启Springboot的 自动配置功能 ,加载各个场景启动中的自动配置类,将配置类中的bean注册在容器中
    可以 通过properties或yml配置文件来修改 容器中bean的属性 ,以达到修改默认配置的目的

8.如何配置SpringBoot的配置文件?

SpringBoot配置文件的作用:

修改Spring Boot自动配置的默认值

SpringBoot 配置文件分为两种:

  1. application.properties配置

SpringBoot微服务框架概述

  1. application.yml配置

SpringBoot微服务框架概述

使用特定的YML语法进行编写

对文章中内容感兴趣的小伙伴可以搜索微信公众号:敲代码的老贾,领取相应资料

版权声明:程序员胖胖胖虎阿 发表于 2022年10月4日 上午2:32。
转载请注明:SpringBoot微服务框架概述 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...