@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存在指定项       

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值