Spring Boot learning…
1.主程序类,主入口类
/**
* 标记一个主程序类,表示是一个spring boot入口
*/
@SpringBootApplication
public class DemospringbootApplication {
public static void main(String[] args) {
//让 spring 应用启动
SpringApplication.run(DemospringbootApplication.class, args);
}
}
@SpringBootApplication :Spring Boot应用标注在某一个类上,说明这个类是Spring Boot的主配置类
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
@SpringBootConfiguration:Spring Boot的配置类;(Spring Boot定义的注解)
标注在某个类上,表示这是一个Spring Boot 的配置类;
@Configuration:配置类上来标注这个注解 (Spring 定义的注解)
配置类…配置文件 @Component,也是一个组件;
@EnableAutoConfiguration:开启自动配置功能;
以前需要配置的东西,Spring Boot帮助我们配置;@EnableAutoConfiguration告诉Spring Boot开启自动配置;
@AutoConfigurationPackage
@Import(AutoConfigurationImportSelector.class)
public @interface EnableAutoConfiguration {
@AutoConfigurationPackage;自动配置包
@Import(AutoConfigurationPackages.Registrar.class)
Spring的底层注解 @Import,给容器导入一个组件,导入的组件由
AutoConfigurationPackages.Registrar.class;
== 将主配置类(@SpringBootApplication)的所在的包及下面所有的子包里所有的组件扫描到spring容器中==
@Import(AutoConfigurationImportSelector.class);导入哪些组件的选择器;
将所有需要导入的组件以全类名的方式返回,就会加载到容器中;
导入许多的配置类;