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

@SpringBootApplication注解是一个组合注解,其中包括:@SpringBootConfiguration、@EnableAutoCOnfiguration、@ComponentScan

 

@SpringBootConfiguration继承自@Configuration,二者功能一致,标注当前类是配置类,并会将当前类内声名的以@Bean注解标注的方法实例纳入Spring容器中,实例名就是方法名。

@ComponentScan的作用是自动扫描并加载符合条件的的组件或Bean定义,最终将这些Bean加载到容器中。我们可以通过basePackages属性指定扫描的范围,如果不指定,默认扫描当前包及其子包下面的类。

@EnableAutoConfiguration是借助@Import将所有符合自动配置条件的Bean加载到IOC容器。

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import(AutoConfigurationImportSelector.class)
public @interface EnableAutoConfiguration {
}

其中,最关键的是@Import(AutoConfigurationImportSelector.class),借助AutoConfigurationImportSelector这个类,@EnableAutoConfiguration可以帮助SpringBoot应用将所有符合条件的@Configuration都加载IOC容器中,从classpath中搜寻出所有的META/Spring.factories配置文件,并将其中org.springframework.boot.autoconfigure.EnableAutoConfiguration对应的配置项,也就是一个自动配置类列表加载到IOC容器。

简单说,@EnableAutoConfiguration注解让SpringBoot根据类路径下的jar包依赖为当前项目进行自动配置,例如添加spring-boot-starter-web依赖,会自动添加Tomcat和SpringMVC依赖。对于所有使用@Configuration标注的配置类,统一由ConfigurationClassParser解析。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
@SpringBootApplication是一个组合注解,用于标注Spring Boot的主配置类。它包含了以下三个注解: 1. @SpringBootConfiguration:标注在某个类上,表示这是一个Spring Boot的配置类。该注解本身也是@Configuration的衍生注解,用于定义配置类。 2. @EnableAutoConfiguration:启用自动配置功能。Spring Boot会根据项目的依赖和配置,自动配置Spring应用程序上下文。它会根据类路径下的jar包和类上的注解来判断需要自动配置哪些功能。 3. @ComponentScan:指定Spring Boot应用程序的组件扫描的基础包。它会自动扫描并注册带有@Component、@Controller、@Service等注解的Bean。 综合来说,@SpringBootApplication的作用是将这三个注解组合在一起,方便快速启动一个Spring Boot应用程序,并进行自动配置和组件扫描。123 #### 引用[.reference_title] - *1* *2* [@SpringBootApplication注解详解](https://blog.csdn.net/killerofjava/article/details/104375433)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] - *3* [@SpringBootApplication注解](https://blog.csdn.net/u010675669/article/details/109010552)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值