@Condition进行条件判断

本文展示了如何创建一个自定义的`Condition`类`YjCondition`,该类检查容器中是否存在名为'yjAspect'的组件。如果存在,`YjLog` bean将被启用,这通过使用`@Conditional`注解实现。`MainConfig`配置类中定义了`yjAspect`和`yjLog` bean,`yjLog`的启用依赖于`YjCondition`的匹配结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自己创建一个TestCondition的类 实现Condition接口

public class YjCondition implements Condition {

    /**
     *
     * @param context
     * @param metadata
     * @return
     */
    @Override
    public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
        //判断容器中是否有yjAspect的组件
        if(context.getBeanFactory().containsBean("yjAspect")) {
            return true;
        }
        return false;
    }
}


public class MainConfig {

    @Bean
    public YjAspect yjAspect() {
        return new YjAspect ();
    }

    /**
     * 判断bean是否起作用
     * @return
     */
    @Bean
    @Conditional(value = YjCondition.class)
    public YjLog yjLog() {
        return new YjLog();
    }
}
@Condition是Spring框架中的一个注解,用于在配置中根据一定的条件进行判断,从而决定是否将某个Bean注册到容器中。在配置中,可以使用@Conditional({Condition})来给容器中注册Bean。根据不同的条件,可以注册不同的Bean实例到容器中。例如,在Windows系统上注册名为"bill"的Person Bean,在Linux系统上注册名为"linus"的Person Bean。 @ConditionOnBean是Spring Boot中的一个条件注解,通过继承Condition来实现自定义的条件判断。通过使用@ConditionalOnBean注解可以在某些Bean存在的条件下才会注册特定的Bean。 Condition接口是Spring框架中的一个函数式接口,里面只有一个方法matches用于判断注解条件是否符合,如果符合返回true。 在Spring Boot中,可以通过编写自定义的条件来控制Bean的注册,从而实现对应用的灵活配置和扩展。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【Spring注解系列04】@Condition条件注解](https://blog.youkuaiyun.com/baidu_37107022/article/details/88878703)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Spring中@Condition底层实现原理](https://blog.youkuaiyun.com/qq_40922616/article/details/126824751)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半夏_2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值