SpringBoot应用启动过程中Spring容器的初始化过程
SpringBoot应用启动的过程中加入到spring容器当中的组件大致可以归为两类
①SpringBoot自动配置中的包含原生的组件
通过 AutoConfigurationImportSelector 完成
具体细节见 https://www.cnblogs.com/tombky/p/12555416.html
②我们编写的一些业务类(比如通过扫描主启动类所在的包及子包相应的注解加入到容器中的组件,Conponet、 Controller、Service 、 Mapper )
应用启动时,先将我们自己编写的一些业务类加入到容器中,再根据容器中已有bean的自动化装配一些原生的组件
通过 @AutoConfigurationPackage 注解完成
具体装配细节见 https://www.cnblogs.com/tombky/p/12556197.html
大多原生组件装配之前其实已经装配原生组件对应的 xxxProperties 组件,在装配原生组件时一般通过有参构造的方式将 xxxProperties 设置进去
@Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @AutoConfigurationPackage @Import({AutoConfigurationImportSelector.class}) public @interface EnableAutoConfiguration { String ENABLED_OVERRIDE_PROPERTY = "spring.boot.enableautoconfiguration"; Class<?>[] exclude() default {}; String[] excludeName() default {}; }
量变引起质变,这就是我所理解的因果。

浙公网安备 33010602011771号