码迷,mamicode.com
首页 > 移动开发 > 详细

@SpringBootApplication注解的理解

时间:2020-04-25 01:19:28      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:https   exclude   pre   tps   his   and   ati   app   int   

  • @SpringBootApplication

废话不多说,我们直接贴出来SpringBoot的官方给出的源码:
package org.springframework.boot.autoconfigure;
@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 {

}

可以分为这两类:
第一类
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited

第二类
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan

第一类我们忽略,直接看第二类
下面是每一类的源码:

@SpringBootConfiguration

package org.springframework.boot;
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
public @interface SpringBootConfiguration {

}

@EnableAutoConfiguration

package org.springframework.boot.autoconfigure;
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import(AutoConfigurationImportSelector.class)
public @interface EnableAutoConfiguration {

}

@ComponentScan

 

package org.springframework.context.annotation;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@Repeatable(ComponentScans.class)
public @interface ComponentScan {
}


于此得出@SpringBootApplication由@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan组成。

我们来看看官方https://docs.spring.io/spring-boot/docs/2.2.6.RELEASE/api/    API是怎么解释的

 

@SpringBootApplication  注解在 这个包目录下 org.springframework.boot.autoconfigure;技术图片

 

重点就是这句话“Indicates a configuration class that declares one or more @Bean methods and also triggers auto-configuration and component scanning. This is a convenience annotation that is equivalent to declaring @Configuration@EnableAutoConfiguration and @ComponentScan.”

我们翻一下:

指示一个配置类,该类声明一个或多个@Bean方法,并且还触发自动配置和组件扫描。这是一个方便注释,等效于声明@ Configuration,@ EnableAutoConfiguration和@ComponentScan。

从中我们可以明确的知道@SpringBootApplication==@Configuration+@EnableAutoConfiguration+@ComponentScan

2020-04-25 00:12:18

 

 

 

 

 

 

 

 

 

 

 

 

 









@SpringBootApplication注解的理解

标签:https   exclude   pre   tps   his   and   ati   app   int   

原文地址:https://www.cnblogs.com/crelle/p/12771133.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!