Jakarta ee 如何忽略/否决CDI生产者方法?
我知道我可以让我们忽略豆子 但是,我想忽略生产者提供的bean。e、 g:我想在生产环境中忽略这一点Jakarta ee 如何忽略/否决CDI生产者方法?,jakarta-ee,cdi,java-ee-7,Jakarta Ee,Cdi,Java Ee 7,我知道我可以让我们忽略豆子 但是,我想忽略生产者提供的bean。e、 g:我想在生产环境中忽略这一点 @Produces @ApplicationScoped @Development EnvironmentDao developmentDao() { return new DevelopmentDao() } 有人有线索吗? 多谢各位 @更新 实际上我有另一个解决方案,比如 @Development @ApplicationScoped class DevelopmentProduc
@Produces
@ApplicationScoped
@Development
EnvironmentDao developmentDao() {
return new DevelopmentDao()
}
有人有线索吗?
多谢各位
@更新
实际上我有另一个解决方案,比如
@Development
@ApplicationScoped
class DevelopmentProducer {
@Produces
EnvironmentBean developmentBean = new EnvironmentBean() {
@Override
String getText() {
return 'I am DevelopmentBean'
}
}
@Produces
@ApplicationScoped
EnvironmentDao developmentDao() {
return new DevelopmentDao()
}
}
这样我就可以使用ProcessAnnotatedType忽略这个生产者。但是,我想知道是否有任何方法可以忽略producer方法而不是整个producer
谢谢。CDI没有提供直接的方法来禁用生产者 事实上,event
@Alternative
不会起作用。但是,@Specializes
将起作用,因为bean类将被真正删除,因此无法找到生产者。但那不是你想要的
您还可以使用
扩展名
观察事件。它不提供否决权方法,但您可以在setProducer
方法中用一个新的符合您需要的生产者替换此类生产者。如果您有@Development
限定符,我想您也有一种@Production
环境DAO限定符?您应该查看@Alternative
以启用/禁用bean。@Rouliboy,实际上@Development
不是限定符。此外,我正在寻找一个不使用替代方案的解决方案。谢谢。那么什么是@Development
?@rouliboy'@Development'只是一个痛苦的注释,它用来表示bean是一个“开发”bean