SpringBoot自动装配
1.@SpringBootApplication
1.1 @SpringBootConfiguration
继承了Configuration,表示当前是注解类
1.1.1@Configuration //配置、注入bean依赖,
1.1.1.1@Bean
定义bean,方法名为默认的bean id
标注了Bean的方法,返回值作为bean定义注册到SpringIoc容器
2.@ComponentScan // 扫描路径设置
自动扫描,加载符合条件的组件
将这些bean定义加载到IoC容器中
basepackage设定扫描范围,默认是与@ComponentScan所在类的package
3.@EnableAutoConfiguration
开启springboot的注解功能,springboot的四大神器之一,其借助@import的帮助
@Enable开头的注解:
1.@EnableScheduling //通过import,将调度框架的相关的bean定义都加载到ioc容器中【定时任务、时间调度任务】
2.@EnableMBeanExport //通过import,将JMS框架的相关的bean定义都加载到ioc容器中【监控JVM运行时状态】
3.@EnableAutoConfiguration也是借助@Import的帮助,将所有符合自动配置条件的bean定义加载到IoC容器。
重点注解:
3.1@AutoConfigurationPackage
通过@Import(AutoConfigurationPackages.Registrar.class)实现同级及其子集的bean定义的注册
new PackageImport(metadata).getPackageName() 返回了同级和子级包的组件
@Import(AutoConfigurationImportSelector.class)
继承DeferredImportSelector实现了selectImports,返回要实例化的类信息列表;
自动配置器会跟根据传入的factoryClass.getName()到项目系统路径下所有的spring.factories文件中找到相应的key,从而加载里面的类。