与天地兮比寿,与日月兮齐光。这篇文章主要讲述@SpringBootApplication注解的理解相关的知识,希望能为你提供帮助。
- @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注解的理解】
@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
推荐阅读
- Android SIMPLE: Error configuring
- android中引入yoga
- 经济下行趋势明显,Android开发者出路在哪(7成Android开发者月薪不足6千)
- FETMX8MM-C核心板,Android9.0QT5.10,10年+生命周期 这是飞凌2019年
- uni-app APP端隐藏导航栏自定义按钮
- Android studio 错误
- appium 已解决Android,每次启动手机中都会安装Appium settings和Unclock的方法
- @RequestMapping接口动态参数
- 如何在Flutter和AngularDart中利用BLoC进行代码共享