Spring Boot的目标

image.png

Spring Boot 2.X新特性

image.png

Spring Boot工作机制与Autoconfig底层原理

image.png

自动化配置机制解析

  1. 自动配置注解的作用

@SpringBootApplication(开启自动配置)
包含@SpringBootConfiguration 、@EnableAutoConfiguration、@ComponentScan通常用在主类上;

  1. @ComponentScan:其实就是自动扫描并加载符合条件的组件(比如@Component和@Repository等)或者bean定义,最终将这些bean定义加载到IoC容器中。
  2. @EnableAutoConfiguration:从classpath中搜寻所有的META-INF/spring.factories配置文件,并将其中org.springframework.boot.autoconfigure.EnableutoConfiguration对应的配置项通过反射(Java Refletion)实例化为对应的标注了@Configuration的JavaConfig形式的IoC容器配置类,然后汇总为一个并加载到IoC容器。

SpringFactoiesLoader内部有一个静态的双层ConcurrentMap,用来存储这些key-value,第一层map的key是classloader,springboot默认的classloader是appClassLoader,value则是一个MultiValueMap,是spring自己实现的一个hashmap。而这个MultiValueMap的key就是spring.factoies文件中的key,value是一个list,即spring.factoies文件中的value。SpringFactoiesLoader利用缓存机制,只在第一次扫描所有的META-INF/spring.factoies文件时,就把所有的key-value都加载到这个map中,后面再进从中获取值时,直接从map中取就可以了,就不需要再重新扫描了。

  1. @SpringBootConfiguration:继承自@Configuration,二者功能也一致,标注当前类是配置类,并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中,并且实例名就是方法名。
  1. 自动化配置机制的核心
  • spring-boot-autoconfigure.jar
  • spring.factories
  1. 涉及哪些Bean
  2. 哪些设计模式
  3. 内部机制,配置文件
  4. 监控Spring Boot Bean自动化配置

@SpringBootApplication

Dispacther原理

MongoDB

image.png
image.png
image.png

Redis

image.png
image.png

监控

image.png
image.png
image.png

Micrometer

image.png
image.png

  1. APM
  2. Actuator底层实现
  3. Micrometer优势
  4. 配置文件监控
  5. 数据库、NoSql数据库监控

    Docker

    image.png

    Hystrix 底层原理
     Hystrix 使用了命令模式,
     对命令对象抽象了两个抽象类:
     HystrixCommand 和 HystrixObservableCommand 。