本次是快速阅读了王福强的《SpingBoot揭秘-快速构建微服务体系》的第一遍。没有深究里面的具体内容。有所收获,写一点心得以加深印象。
1 Spring框架的本质
这一章节并没有言短意赅地去给spring框架的本质做定义,只是介绍了
历史
IoC
JavaConfig
黑暗的EJB历史就不讲了,JavaConfig是对原来XML的一种改进,添加一个@Configuration注解。这里稍微讲下IoC。
IoC(Inversion Of Control)控制反转。控制反转是一个设计思想,实现IoC的实现方式有两个,DL(Dependency Lookup)和DI(Dependency Injection)。DL的关键代码片段:
ApplicationContext context = new FileSystemXmlApplication("....");
MockeService service = context.getBean(MockService.class);
service.dosth();
在使用服务的时候,我们会注入这个服务bean,这就是DI。
Spring IoC容器的依赖注入分为两个阶段:
1)收集和注册
2)分析和组装
2 SpingBoot的工作机制
@SpringBootApplication的背后
主要是三个Annotation。
@Configuration
@EnableAutoConfiguration
@ComponentScan
@Configuration说明这个是一个IoC容器的配置类,构建下容器的环境,将一些bean添加到容器里面去。
@EnableAutoConfiguration主要用到了SpringFactoriesLoader这个类,这个类的主要功能就是从指定的配置文件META-INF/spring.factories加载配置;spring.factories是一个典型的java properties文件,key和value都是完整类名。那么这个注解的作用就是将META-INF/spring.factories的配置项通过反射实例化为对应标注为@Configuration形式的IoC容器配置类。
@ComponentScan这个不必讲了,扫描指定包。
自动装配
基于条件的自动装配:@ConditonOnClass ....
调整自动装配的顺序:@AutoConfigureAfter ....
3 了解纷繁的spring-boot-starter
这里讲了一些常用的starter,后面有需要再细看。
spring-boot-starter-logging
spring-boot-starter-web
spring-boot-starter-jdbc
spring-boot-starter-aop(重点讲)
spring-boot-starter-security(重点讲)
监控与spring-boot-starter-actuator(重点讲)