马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
下面分两部门系统讲解:
第一部门:Spring Boot 主动配置原理(核心是主动装配)
一、Spring Boot 的主动配置是干嘛的?
传统 Spring 开发时,你要写一堆 XML 或配置类,非常贫苦。Spring Boot 引入了“主动配置”机制——你只必要引入依赖并加几个注解,框架就帮你完成配置初始化。
你几乎不必要管:
- 数据源如何配置
- Web 服务如何启动
- 日记、Jackson、缓存如何整合
这一切都由主动配置帮你完成了。
二、核心注解:@SpringBootApplication
- @SpringBootApplication
- public class DemoApplication {
- public static void main(String[] args) {
- SpringApplication.run(DemoApplication.class, args);
- }
- }
复制代码 这个注解其实是个组合注解,相当于:
- @Configuration
- @EnableAutoConfiguration
- @ComponentScan
复制代码
- @EnableAutoConfiguration:是主动配置的关键入口
- @ComponentScan:扫描当前包及子包的 Spring Bean
- @Configuration:表示这是一个配置类
三、主动配置的背后机制(重要!)
1)@EnableAutoConfiguration 内部用到了 @Import:
- @Import(AutoConfigurationImportSelector.class)
复制代码 也就是说,它会把一堆主动配置类注册到 Spring 容器里。
2)AutoConfigurationImportSelector 会读取下面这个配置文件:
- META-INF/spring.factories
复制代码 里面有很多形如:
- org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
- org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,\
- org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration,\
- ...
复制代码 这些类都带有 @Configuration 注解,会被 Spring 主动加载成配置类。
|