【SpringApplication三板斧】@EnableAutoConfiguration

作用

启用了Spring Boot的自动配置功能,根据你pom.xml引入的xxx-boot-starter可以自动为配置很多东西。

流程图

  • 我们引入starter的依赖,会将自动配置的类的jar引入。
  • @SpringBootApplication的注解中有一个是@EnableAutoConfiguration注解,这个注解有一个@Import({EnableAutoConfigurationImportSelector.class}),
  • EnableAutoConfigurationImportSelector内部则是使用了SpringFactoriesLoader.loadFactoryNames方法进行扫描具有META-INF/spring.factories文件的jar包。
  • 应用在启动时就会加载spring-boot-autoconfigure的jar包下面的META-INF/spring.factories文件中定义的autoconfiguration类。
  • 将configuration类中定义的bean加入spring到容器中。就相当于加载之前我们自己配置组件的xml文件。而现在SpringBoot自己定义了一个默认的值,然后直接加载进入了Spring容器。
  • spring-boot-autoconfigure的jar包里面通过condition的方式判断是否将xxxx-starter(比如aop、jdbc。。。)初始化。(pom.xml引入了jar包才能初始化)。

猜你喜欢

转载自www.cnblogs.com/kbian/p/12804732.html