Java中的@Conditional条件注解详细解析
更新时间:2023年11月28日 09:23:51 作者:明天天明~
这篇文章主要介绍了Java中的@Conditional条件注解详细解析,@Conditional是Spring4新提供的注解,它的作用是按照一定的条件进行判断,满足条件给容器注册bean,需要的朋友可以参考下
@Conditional条件注解
@Conditional是Spring4新提供的注解,它的作用是按照一定的条件进行判断,满足条件给容器注册bean。
@Conditional的定义:
//此注解可以标注在类和方法上
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Conditional {
Class<? extends Condition>[] value();
}例子:当存在name为tom的组件时,创建user01组件。可以标注在方法上也可以标注在类上
@ConditionalOnBean(name = "tom") //当容器中没有tom组件 就不注册user01组件,也能将其标注在类上
@Bean
public User user01(){
User user = new User();
user.setName("zhangao");
user.setAge(12);
user.setPet(tomcat());//这个pet就是容器中的pet
return user;
}- @ConditionalOnJava | 系统的java版本是否符合要求
- @ConditionalOnBean | 容器中存在指定Bean;
- @ConditionalOnMissingBean | 容器中不存在指定Bean;
- @ConditionalOnExpression | 满足SpEL表达式指定
- @ConditionalOnClass | 系统中有指定的类
- @ConditionalOnMissingClass | 系统中没有指定的类
- @ConditionalOnSingleCandidate | 容器中只有一个指定的Bean,或者这个Bean是首选Bean
- @ConditionalOnProperty | 系统中指定的属性是否有指定的值
- @ConditionalOnResource | 类路径下是否存在指定资源文件
- @ConditionalOnWebApplication | 当前是web环境
- @ConditionalOnNotWebApplication | 当前不是web环境
- @ConditionalOnJndi | JNDI存在指定项

到此这篇关于Java中的@Conditional条件注解详细解析的文章就介绍到这了,更多相关@Conditional条件注解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
spring security 5.x实现兼容多种密码的加密方式
spring security针对该功能有两种实现方式,一种是简单的使用加密来保证基于 cookie 的 token 的安全,另一种是通过数据库或其它持久化存储机制来保存生成的 token。这篇文章主要给大家介绍了关于spring security 5.x实现兼容多种密码的加密方式,需要的朋友可以参考下。2018-01-01
关于@RequestBody,@PathVariable,无注解使用及说明
本文详细介绍了@RequestBody、@PathVariable和无注解三种参数注解的使用场景、核心特征及对比,总结:根据数据类型和场景选择合适注解,可提升接口规范性和性能2025-10-10
详解JAVAEE——SSH三大框架整合(spring+struts2+hibernate)
这篇文章主要介绍了详解JAVAEE——SSH三大框架整合(spring+struts2+hibernate),具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-07-07


最新评论