SpringBoot学习笔记-原理问答

描述一下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

@Configuration(proxyBeanMethods)
有@Configuration注解的bean,Spring会给他创建一个cglib动态代理。防止每次调用本类的bean方法而重新创建对象,Bean是默认单例的

@EnableConfigurationProperties(ServerProperties.class)
引用一个配置类的属性

@ConditionalOnXXX
该配置类的生效条件


image.png

如何以jar包启动

pom中添加spring-boot-maven-plugin,这样MENIFEST.MF中会指定启动类的名称

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容