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

发布时间:2024年01月18日

要想了解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 注解的方法上标注。

?

文章来源:https://blog.csdn.net/weixin_52633911/article/details/135539407
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。