描述一下Springboot的作用
Springboot有哪些特性
自动配置原理
spring-boot-starter-web 会
- SpringBootApplication
@SpringBootConfiguration
表明是要给SpringBoot的配置类
@EnableAutoConfiguration
开启自动配置功能
-@AutoConfigurationPackage
-@Import(AutoConfigurationPackages.Register.class)
将当前配置所在包所在类保存到BasePackages的bean中,供Spring内部使用
-@Import(AutoConfigurationImportSelector.class)
AutoConfigurationImportSelector继承自DeferredSelectImporter,DeferredSelectImporter继承自SelectImporter,SelectImporter会返回一个字符串数组,
@Retention(ReteontionPolicy,RUNTIME)
source:只保留class源文件,源文件中注解不保留
class:会保留注解,不会被jvm加载到,即通过反射去找这个注解会找不到
runtime:会被jvm加载,通过反射能找到这个注解
@Configuration
当前类被标记为Spring容器中的配置类
Spring Boot的自动配置流程图.png
解读一个starter的自动配置类
image.png
image.png
@Configuration(proxyBeanMethods)
有@Configuration注解的bean,Spring会给他创建一个cglib动态代理。防止每次调用本类的bean方法而重新创建对象,Bean是默认单例的
@EnableConfigurationProperties(ServerProperties.class)
引用一个配置类的属性
@ConditionalOnXXX
该配置类的生效条件
image.png
如何以jar包启动
pom中添加spring-boot-maven-plugin,这样MENIFEST.MF中会指定启动类的名称