Spring 中 @Import,@Enable,@Condition注解的理解

要想了解Spring Boot自动配置的原理就要先了解spring Boot 的几个底层注解

1.@import注解

@Import 是 Spring 基于 Java 注解配置的主要组成部分。 @Import 注解提供了 @Bean 注解的功能,同时还有原来 Spring 基于 xml 配置文件里的 <import> 标签组织多个分散的xml文件的功能,当然在这里是组织多个分散的 @Configuration 的类。

用法1:在类上添加注解@import,写法如下

@Import({Student.class})

 意思为已经自动注入了Student类,可以直接使用

用法2:实现了ImportSelector接口的类(最常用的方式)

Spring Boot的自动装配原理就用到了这种方式,会将一部分类批量注入到容器中

用法3:实现了ImportBeanDefinitionRegistrar接口的类

这种方式是通过实现ImportBeanDefinitionRegistrar将要注入的类添加到BeanDefinition注册中心,这样Spring 后续会根据bean定义信息将类注入到容器中。

2.@Enable注解

该注解是一类注解,通常指以Enable开头

@EnableRetry:开启 Spring 的重试功能;

@EnableScheduling:开启 Spring 的定时功能;

@EnableAsync开启 Spring 的异步功能;

@EnableAutoConfiguration:开启 Spring 的自动装配功能;

 一般像如上累似的@EnableXXX注解是通过@Import实现具体的功能(@EnableXXX注解上加个@Import注解),所以可以说Enable注解其实就是靠import来实现的

3.@Condition条件注解

该类注解的作用就是在满足某个条件的时候才将某个类进行实例化并加入到Spring容器中来。

@Condition跟@Enable一样也是一类注解

@Conditional 可以使用在类上或者方法上。具体使用方式如下:

在标注或元标注了 @Component 组件的类上进行标注。

作为元注解直接标注在其他注解上面。

在标注了 @Bean 注解的方法上标注。

 

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值