网站建设公司那记号,网站开发者模式,合肥市做效果图的网站,济南网站建设平台1.SpringbootApplication
Configuration标志的类 在spring ioc启动的时候就会加载创建这个类对象
EnableAutoConfiguration 中有两个注解
#xff08;1#xff09;AutoConfigurationPackage 扫描主程序包(主程序main所在包及其子包) 可以看到这个类 #xff1a; static c…1.SpringbootApplication
Configuration标志的类 在spring ioc启动的时候就会加载创建这个类对象
EnableAutoConfiguration 中有两个注解
1AutoConfigurationPackage 扫描主程序包(主程序main所在包及其子包) 可以看到这个类 static class Registrar implements ImportBeanDefinitionRegistrar, DeterminableImports { 这个类是注册组件的 public void registerBeanDefinitions(AnnotationMetadata metadata, BeanDefinitionRegistry registry) {AutoConfigurationPackages.register(registry, (String[])(new PackageImports(metadata)).getPackageNames().toArray(new String[0]));}AnnotationMetadata 启动类的一些元信息debug打这个断点的时候 执行 new PackageImports(metadata)).getPackageNames() 可以得到主程序所在包的包名这个注解两个作用利用import给容器导入组件和把主程序所在的包的所有组件导入进来 2 Import({AutoConfigurationImportSelector.class}) 向容器中注入类加载自动配置类
扫描spi文件 ComponentScan( excludeFilters {Filter( type FilterType.CUSTOM, classes {TypeExcludeFilter.class} ), Filter( type FilterType.CUSTOM, classes {AutoConfigurationExcludeFilter.class} )}
组件扫描 排除一些组件 1这个类实现 2排除已经扫描进来的配置类和自动配置类 重新启动看执行顺序 先ComponentScan( 再EnableAutoConfiguration 最后 SpringBootConfiguration
run中看 停留在refreshcontextcontext
springboot生命周期 自动配置在初始化组件创建中 stated 中refresh是在调用spring 最外层就是启动ioc容器 ioc容器造工厂 工厂造组件 准备工厂可以理解为放车间 放流水线 finishBeaFactoryInitialzation 开始造扫描出的组件 调用无参构造器 或者有参构造器创建 这些组件会被创建 Configuration Componet Bean Service 。。。