SpringBoot启动原理

现在微服务越来越火了,SpringBoot热度蹭蹭直升,这里介绍一下主程序入口@SpringBootApplication这个注解的结构

SpringBootApplication背后的秘密

 

@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}
)}

 

虽然定义使用了多个Annotation进行了原信息标注,但实际上重要的只有三个Annotation:

·@Configuration(@SpringBootConfiguration点开查看发现里面还是应用了@Configuration)

·@EnableAutoConfiguration

·@ComponentScan

所以,如果我们使用如下的SpringBoot启动类,整个SpringBoot应用依然可以与之前的启动类功能对等:

@Configuration
@EnableAutoConfiguration
@ComponentScan
public class RestDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(RestDemoApplication.class, args);
    }

}

但每次都写三个Annotation显然过于频繁,所以写一个@SpringBoot-Application这样的一站式复合Annotation显然更方便些。

 

 

有对@Configuration、@EnableAutoConfiguration、@ComponentScan感兴趣的小伙伴可以帮小编点个赞,加个关注不迷路

持续更新

posted @ 2020-09-03 19:40  龙欺  阅读(128)  评论(0)    收藏  举报