@Conditional条件注解
@Conditional是Spring4新提供的注解,它的作用是按照一定的条件进行判断,满足条件给容器注册bean。
@Conditional的定义:
//此注解可以标注在类和方法上 @Target(js{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; &nbsandroidp;
- @ConditionalOnExpression 编程客栈 | 满足SpEL表达式指定
- @ConditionalOnClass &编程nbsp;| 系统中有指定的类
- @ConditionalOnMissingClass | 系统中没有指定的类
- @ConditionalOnSingleCandidate &nbjavascriptsp; | 容器中只有一个指定的Bean,或者这个Bean是首选Bean
- @ConditionalOnProperty | 系统中指定的属性是否有指定的值
- @ConditionalOnResource | 类路径下是否存在指定资源文件
- @ConditionalOnWebApplication | 当前是web环境
- @ConditionalOnNotWebApplication | 当前不是web环境
- @ConditionalOnJndi | JNDI存在指定项
到此这篇关于Java中的@Conditional条件注解详细解析的文章就介绍到这了,更多相关@Conditional条件注解内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
精彩评论