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

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

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

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

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

spring.profiles.active指定一个的话,压根就不需要这么写,该怎么注入就怎么注入
指定多个的话,加Primary就行了