您现在的位置是:主页 > Web前端技术 > Web前端技术
SpringBoot自动配置原理的示例分析开发技术
IDCBT2021-12-28【服务器技术】人已围观
简介这篇文章主要介绍了SpringBoot自动配置原理的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 一、
这篇文章主要介绍了SpringBoot自动配置原理的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
- 一、SpringBoot是什么
SpringBoot 的诞生就是为了简化 Spring 中繁琐的 XML 配置,其本质依然还是Spring框架,使用SpringBoot之后可以不使用任何 XML 配置来启动一个服务,使得我们在使用微服务架构时可以更加快速的建立一个应用。
简单来说就是SpringBoot其实不是什么新的框架,它默认配置了很多框架的使用方式。
二、SpringBoot的特点提供了固定的配置来简化配置,即约定大约配置
尽可能地自动配置 Spring 和第三方库,即能自动装配
内嵌容器,创建独立的 Spring 应用
让测试变的简单,内置了JUnit、Spring Boot Test等多种测试框架,方便测试
提供可用于生产的特性,如度量、运行状况检查和外部化配置。
完全不需要生成代码,也不需要 XML 配置。
三、启动类下面探究SpringBoot的启动原理,关于一些细节就不赘述,我们捉住主线分析即可。
注意:本文的 SpringBoot 版本为 2.6.1
3.1 @SpringBootApplication一切的来自起源SpringBoot的启动类,我们发现main方法上面有个注解:@SpringBootApplication
@SpringBootApplication public class SpringbootWorkApplication { public static void main(String[] args) { SpringApplication.run(SpringbootWorkApplication.class, args); } }
@SpringBootApplication 标注在某个类上说明这个类是 SpringBoot 的主配置类, SpringBoot 就应该运行这个类的main方法来启动 SpringBoot 应用;它的本质是一个组合注解,我们点进去查看该类的元信息主要包含3个注解:
@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
(里面就是@Configuration,标注当前类为配置类,其实只是做了一层封装改了个名字而已)
@EnableAutoConfiguration
(开启自动配置)
@ComponentScan
很赞哦! ()