springboot根据条件实例化bean

本文介绍了如何在Java中通过接口IMyBean定义业务逻辑,并根据不同环境(dev和条件匹配)实例化对应的实现类MyBeanDev和MyBeanMatch。同时展示了如何使用@Profile和@ConditionalOnProperty进行环境和配置属性的智能管理。
摘要由CSDN通过智能技术生成

先定义一个接口,然后根据条件实例化接口的实现类。

public interface IMyBean {
    void hello();
}

1.区分环境,实例化bean

public class MyBeanDev implements IMyBean{
    @Override
    public void hello() {
        System.out.println("from dev...");
    }
}
@Bean
@Profile("dev")
public IMyBean myBeanDev(){
    MyBeanDev myBeanDev = new MyBeanDev();
    myBeanDev.hello();
    return myBeanDev;
}

2.实现condition接口,@Override matches方法,自定义生效条件

public class MyBeanMatch implements IMyBean, Condition {
    @Override
    public void hello() {
        System.out.println("up to matches...");
    }

    @Override
    public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
        return "ok".equals(context.getEnvironment().getProperty("mybean.ok"));
    }
}

3.根据自定义配置属性,@ConditionalOnProperty

@Bean
@ConditionalOnProperty(name = {"mybean.ok"}, havingValue = "ok", matchIfMissing = false)
public IMyBean myBeanOK() {
    MyBeanOk myBeanOk = new MyBeanOk();
    myBeanOk.hello();
    return myBeanOk;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

码农小麦

一起学习共同进步

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

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

打赏作者

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

抵扣说明:

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

余额充值