@SpringBootApplication:springboot 应用标注在某个类上说明这个类是Springboot的主配置类
springboot就应该允许这个类的main方法来启动Springboot应用;
@SpringBootConfiguration:SpringBoot 的配置类;
标注在某个类上,表示这是一个Springboot的配置类;
@Configuration:配置类上来标注这个注解;
配置类——配置文件;配置类也是容器中的一个组件;@Component
@EnableAutoConfiguration :开启自动配置功能;
以前我们需要配置的东西springboot 帮我妈启动配置;@EnableAutoConfiguration 告诉
Springboot 开启自动配置功能;这样自动配置才能生效;
@AutoConfigurationPackage;自动配置包
@Import(AutoConfigurationPackages.Registrar.class)
Spring的底层注解@Import, 给容器中导入一个组件;
将主配置类(@SpringBootApplication标注的类) 的所在包及下边所有包里的所有注解扫描
到Spring容器。
@Import(EnableAutoConfigurationImportSelector.class)
给容器中导入组件?
EnableAutoConfigurationImportSelector:导入哪些组件;
将所有需要导入的组件以全类名的方式返回;这些组件就会被添加到容器中;
会给容器中导入非常多的自动配置类(xxxAutoConfiguration);就是给容器导入这个场景
所需要的所有组件,并配置好这些组件;
有了自动配置类,免去了我们手动编写配置注入功能组件等工作;
SpringFactoriesLoader.loadFactoryNames(EnableAutoConfiguration.class, classLoader)
Spring Boot 在启动的时候从类路径下META-INF/spring.factories获取EnabaleAutoConfiguration
中指定的值,将这些值作为自动配置类导入到容器中,自动配置类就生效;帮助我们进行自动配置工作
J2EE的整体正好解决方案和自动配置都在spring-boot-configure-1.5.9.RELASE.jar;