Spring Boot核心注解讲解

SpringBoot核心注解精讲
本文深入解析SpringBoot的三大核心注解:@Configuration、@ComponentScan和@EnableAutoConfiguration的功能与作用,揭示SpringBoot自动配置与组件扫描的机制。

 

Spring Boot核心注解讲解

 

Spring Boot最大的特点是无需XML配置文件,能自动扫描包路径装载并注入对象,并能做到根据classpath下的jar包自动配置。

所以Spring Boot最核心的3个注解就是:

1,@配置

org.springframework.context.annotation.Configuration

这是Spring 3.0添加的一个注解,用来代替applicationContext.xml配置文件,所有这个配置文件里面能做到的事情都可以通过这个注解所在类进行注册。

下面几个相关注解也是非常重要的!

@豆

用来代替XML配置文件里面的  <bean ...> 配置。

@ImportResource

如果有些通过类的注册方式配置不了的,可以通过这个注解引入额外的XML配置文件,有些老的配置文件无法通过  @Configuration 方式配置的非常管用。

@进口

引入用来额外的一个或者多个  @Configuration 修饰的配置文件类。

@SpringBootConfiguration

这个注解就是@Configuration 注解的变体,只是  用来修饰是Spring Boot配置而已,或者可利于Spring Boot后续的扩展,源码如下。

@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Configuration public @interface SpringBootConfiguration { } 
2,@ ComponentScan

org.springframework.context.annotation.ComponentScan

这是Spring 3.1添加的一个注解,用来代替配置文件中的  component-scan 配置,开启组件扫描,即自动扫描包路径下的  @Component 注解进行注册bean实例到context中。

另外,@ComponentScans 是可重复注解,即可以配置多个,用来配置注册不同的子包。

关于重复注解,大家可以看这篇文章“ JAVA元注解@interface详解 ”。

3,@ EnableAutoConfiguration

org.springframework.boot.autoconfigure.EnableAutoConfiguration

看全路径就知道,这是自Spring Boot诞生时添加的注解,用来提供自动配置,上面的两个都是  spring-context 包下的,不属于Spring Boot,所以Spring 3.0之后的去XML配置方式已经为Spring靴埋下了伏笔!

自动配置更多详细使用及实战可以看这篇文章“ Spring Boot自动配置原理,实战 ”。

最后的彩蛋

Spring Boot最核心的3个注解介绍完了,大家可能会有疑问,为什么最主要的注解  @SpringBootApplication 不在其中?

留给大家的彩蛋,其实这个  @SpringBootApplication 注解就包含了以上3个主要注解,平时没有自定义配置的需求,则使用  @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 {     ... } 

 

 

转载于:https://my.oschina.net/demons99/blog/2246853

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值