赋料扬雄敌,诗看子建亲。这篇文章主要讲述@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} )} ) public @interface SpringBootApplication { @AliasFor( annotation = EnableAutoConfiguration.class ) Class< ?> [] exclude() default {}; @AliasFor( annotation = EnableAutoConfiguration.class ) String[] excludeName() default {}; @AliasFor( annotation = ComponentScan.class, attribute = "basePackages" ) String[] scanBasePackages() default {}; @AliasFor( annotation = ComponentScan.class, attribute = "basePackageClasses" ) Class< ?> [] scanBasePackageClasses() default {}; }
【@SpringBootApplication的说明】前四个注解是元注解,用来修饰当前注解,后三个注解是真正起作用的注解
@SpringbootConfiguration 进入@SpringBootConfiguration源码会发现相当于@Configuration,@Configuration标注在类上,相当于把该类作为spring的xml配置文件中的
<
beans>
,作用为:配置spring容器(应用上下文)
@ComponentScan会自动扫描指定包下全部标有@Component的类,并注册成bean,当然包括@Component下的子注解:@Service,@Repository,@Controller;默认会扫描当前包和所有子包。@EnableAutoConfiguration根据类路径中jar包是否存在来决定是否开启某一个功能的自动配置。
exclude和excludeName用于关闭指定的自动配置,比如关闭数据源相关的自动配置
推荐阅读
- Appium+Pytest实现app并发测试
- webapp开发之IIS进程调试
- AndroidStudio报错(GradleSyncIssues-Could not install Gradle distribution from...)
- 基于WebRtc实现安卓视频一对一聊天
- AndroidStudio更新时报错(Connection Error,Temp directory inside installation)
- 百度DMA+小度App的蓝牙语音解决方案技术难点解析
- AndroidStudio修改默认C盘配置文件夹(.android.gradle.AndroidStudio)以及修改后避免踩的坑
- AndroidStudio报错(Could not download gradle.jar:No cacahed version available for offline mode)
- Android Studio 控件的百分比布局