SpringBoot项目入口函数类上的@SpringBootApplication的解析

本文解析了Spring Boot中核心注解@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan的作用,展示了如何利用它们进行Java配置和组件扫描。了解这些注解有助于简化Spring应用的配置过程。
摘要由CSDN通过智能技术生成

以下为源代码

@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:组合了@Configuration注解,配置该注解的类能够以 JavaConfig的方式完成配置,不再使用XML配置
@EnableAutoConfiguration:基于已添加的依赖项,SpringBoot的自动配置是一个应用程序启动时运行的过程,考虑了众多因素,才决定 Spring配置应该用哪个,不该用哪个
@ComponentScan:对Spring组件进行扫描,默认扫描所在类的同级类和同级目录下的所有类

其他注解
@Target(ElementType.TYPE):使注解只能用于描述类、接口(包括注解类型) 或enum声明 Class
@Retention(RetentionPolicy.RUNTIME):使注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在
@Documented:使这个注解是由 javadoc记录的,在默认情况下也有类似的记录工具。 如果一个类型声明被注解了文档化,它的注解成为公共API的一部分
@Inherited

	> 使这个注解所修饰的类在类继承关系中,子类会继承父类使用的注解中被@Inherited修饰的注解;
	> 使这个注解所修饰的接口继承关系中,子接口不会继承父接口中的任何注解,不管父接口中使用的注解有没有被@Inherited修饰;
	> 使这个注解所修饰的类实现接口时不会继承任何接口中定义的注解
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值