markfengfeng 2021-12-23 10:33 采纳率: 0%
浏览 34

springboot 如何根据profile注入不同的实例

例如存在接口 DemoService 和两个实现类 ProdDemoServiceImpl DevDemoServiceImpl.
profile 可以定义为 dev 或者 prod.
如何做到 profile 是dev的时候注入DevDemoServiceImpl prod的时候注入 ProdDemoServiceImpl。

我当前找到一个办法是:
@Resource(name="#{profile.profile eq 'dev' ? 'DevDemoServiceImpl' : 'ProdDemoServiceImpl'}")
private DemoService demoService;

我觉着这个注入的书写还是复杂了一点,有没有更好的办法。

  • 写回答

2条回答 默认 最新

  • 燕_青 2021-12-23 11:49
    关注

    试试@Profile注解
    @Profile("dev")
    pirvate DemoService devDemoService;
    @Profile("prod")
    pirvate DemoService prodDemoService;

    评论

报告相同问题?

问题事件

  • 创建了问题 12月23日