自动配置
一、自动配置
springboot的自动配置就是当spring容器启动后,一些配置类、bean对象就自动存到了IOC容器中,不需要我们手动去声明,从而简化了开发,省去了繁琐的配置操作。
二、方案
1.方案一:@ComponentScan组件扫描
2.方案二:@Import导入。使用@Import导入的类会被Spring加载到IOC容器中,导入形式主要有以下几种:
(1) 导入普通类
(2) 导入配置类
(3) 导入ImportSelector接口实现类
(4) @EnableXxxx注解,封装@Import注解(方便优雅)
三、源码跟踪
@SpringBootApplication标识在SpringBoot工程引导上,是SpringBoot中最重要的注解。由三个部分组成:
1.@SpringBootConfiguration:该注解与@Configuration注解作用相同,用来声明当前也是一个配置类。
2.@ComponentScan:组件扫描,默认扫描当前引导类所在包及其子包。
3.@EnableAutoConfiguration:SpringBoot实现自动化配置的核心注解。
四、@Conditional
1.作用:按照一定的条件进行判断,在满足条件后才会注册对应的bean对象到Spring IOC容器中。
2.位置:方法、类
3.@Conditional本身是一个父注解,派生出大量的子注解:
-
@ConditionalOnClass:判断环境中是否有对应的字节码文件,才注册bean到IOC容器。
-
@ConditionalOnMissingBean:判断环境中有没有对应的bean(类型或名称),才注册bean到IOC容器。
-
@ConditionalOnProperty:判断配置文件中有对应属性和值,才注册bean到IOC容器。
五、自定义starter
场景:在实际开发中,经常会定义一些公共组件,提供给各个项目团队使用。而在SpringBoot的项目中,一般会将这些公共组件封装为SpringBoot的starter
1.SpringBoot官方:
2.其他技术提供: