目录
pom.xml
启动器 spring-boot-starter
主启动类
@SpringBootApplication
结论
SpringApplication
@SpringBootApplication //使用此注解说明这是一个SpringBoo应用
public class SpringbootApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootApplication.class, args);
}
}
标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot 就应该运行这个类的main方法来启动SpringBoot应用。
进入这个注解:
@org.springframework.boot.SpringBootConfiguration
@org.springframework.boot.autoconfigure.EnableAutoConfiguration
@org.springframework.context.annotation.ComponentScan
@ComponentScan
这个注解对应XML配置中的元素;
自动扫描并加载符合条件的组件或bean,将这个bean定义加载到IOC容器中。
@SpringBootConfiguration
标注在某个类上,表示这是SpringBoot的配置类。
@org.springframework.boot.SpringBootConfiguration —>
@org.springframework.context.annotation.Configuration ->
@org.springframework.stereotype.Component
点进去的 @Configuration 说明这是一个配置类,配置类就是对应Spring的xml配置文件;
再点进去 @Component ,这就说明,启动类本身也是Spring 中的一个组件,负责启动应用。
@EnableAutoConfiguration
@org.springframework.boot.autoconfigure.AutoConfigurationPackage
@org.springframework.context.annotation.Import({org.springframework.boot.autoconfigure.AutoConfigurationImportSelector.class})
public @interface EnableAutoConfiguration {
...
该注解,开启自动配置功能,也就是告诉SpringBoot开启自动配置功能,使用了该注解自动配置才能生效。
以前需要自己配置的东西,现在SpringBoot帮我们配置。
1.点进去 @AutoConfigurationPackage :自动配置包
@org.springframework.context.annotation.Import({org.springframework.boot.autoconfigure.AutoConfigurationPackages.Registrar.class})
public @interface AutoConfigurationPackage {
}
@Import Spring底层注解,给容器中导入一个组件。
Registrar.class : 将主启动类的所在包及 包下面所有子包里面的组件扫描到Spring容器。
2.点进去 @Import({.AutoConfigurationImportSelector.class}) 给容器导入组件
AutoConfigurationImportSelector 自动配置导入选择器
spring.factories
打开spring.factories 可以看到很多配置文件,这里就是自动配置的根源。
在这些自动配置类中我们可以打开一个,例如 WebMvcAutoConfiguration,
可以看到里面都是JavaConfig配置类,还注入了一些bean。
这个类主要做了一下四件事情:
本文参考自狂神说。