首页 > 编程语言 > 详细

SpringBoot之注解

时间:2020-06-30 12:38:00      阅读:42      评论:0      收藏:0      [点我收藏+]

1、@SpringBootApplication

    @SpringBootApplication标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot就该运行这个类的main方法启动SpringBoot应用

    

@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 {
  @SpringBootConfiguration:SpringBoot的配置类,标注在类上,表示是SpringBoot的配置类【这个是SpringBoot规定的注解】
    内部:
@Configuration配置类上来标注的注解【这个是Spring规定的注解】
        配置类也是容器中的一个组件:@Component

2、@EnableAutoConfiguration

   开启自动配置功能,以前要配置的比如扫描什么的,现在都不需要手写了,SpringBoot自动装配,@EnableAutoConfiguration告诉SpeingBoot开启自动配置;这样才能生效

内部也是组合注解:

 

@AutoConfigurationPackage
@Import({EnableAutoConfigurationImportSelector.class})
public @interface EnableAutoConfiguration {

 

@AutoConfigurationPackage:自动配置包
    
@Import({Registrar.class})
      Spring的底层注解@import,给容器导入一个组件;导入的组件
Registrar.class将主配置类(就是@SpringBootApplication标注的类)所在的包以及下面所有子
包里面的所有组件都扫描到Spring容器中
@Import({EnableAutoConfigurationImportSelector.class})
  导入那些组件的选择器,将需要的组件以全类名(
String[] selectImports(AnnotationMetadata annotationMetadata){}
)的方式返回。这些组件就会添加到容器中;会给容器中导入非常多的配置类(xxxAutoConfiguration);就是给容器中导入这个场景需要的所有组件,并配置好这些组件;
有了自动配置类,就免去了手动编写配置注入功能组件的工作;
技术分享图片

 

 

 
 
 

 

SpringBoot之注解

原文:https://www.cnblogs.com/Timeouting-Study/p/13212395.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!