我想基于配置或环境变量注入@Named bean(或通过不同方式实现相同目标)。例如我要替换
@Inject
@Named("myredBean")
使用
@Inject
@Named("{bean.color}")
或类似...
我没有使用Spring,所以我宁愿使用非Spring解决方案!我正在使用Quarkus
答案 0 :(得分:3)
以稍微不同的方式实现相同目标的一种简单方法是,在生成CDI bean时而不是根据我的问题进行注入时读取环境变量
@ConfigProperty(name = "bean.colour")
private String colour;
@Produces
public ColourBean create() {
LOGGER.info("Producing a ColourBean for: {}",colour);
switch(Colour.valueOf(colour)){
case RED:
case red:{
return new RedBean();
}
...
}
}