乐趣区

关于前端:SpringBoot微服务框架概述

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 包

6. SpringBoot 的场景启动器

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

spring-boot-starter

作用:Spring Boot 的外围启动器,蕴含了主动配置、日志和 YAML

查看 parent 的 starter

SpringBoot 读取 resources 下的也就是类门路下的 application 结尾的三种配置文件。

parent 的 stater 继承于 dependencies

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

查看 web 的 starter

  1. tomcat 的启动器
  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 配置
  1. application.yml 配置
应用特定的 YML 语法进行编写

对文章中内容感兴趣的小伙伴能够搜寻微信公众号:敲代码的老贾,支付相应材料

退出移动版