Java JBoss Weld:为测试注入不同的实现
我希望根据上下文在bean中注入不同的实现。情况如下:Java JBoss Weld:为测试注入不同的实现,java,jboss-weld,Java,Jboss Weld,我希望根据上下文在bean中注入不同的实现。情况如下: interface A{} class AImplForTest implements A{} class AImplForProd implements A{} class B{ @Inject A a; } 在测试上下文中,我希望注入AImplForTest,而在生产上下文中,这应该是AImplForProd。B在这两个上下文中是同一类。有可能吗?在实践中从未使用过,但从理论上讲,您可以使用@替代注释 从: 替代方案是其
interface A{}
class AImplForTest implements A{}
class AImplForProd implements A{}
class B{
@Inject A a;
}
在测试上下文中,我希望注入AImplForTest,而在生产上下文中,这应该是AImplForProd。B在这两个上下文中是同一类。有可能吗?在实践中从未使用过,但从理论上讲,您可以使用
@替代注释
从:
替代方案是其实现特定于
特定客户端模块或部署场景。。。默认情况下,
@备用bean被禁用。我们需要在这方面启用替代方案
bean存档的beans.xml描述符,使其可用于
实例化和注入。此激活仅适用于bean
在那个档案里
从未在实践中使用过,但从理论上讲,您可以使用@备选注释
从:
替代方案是其实现特定于
特定客户端模块或部署场景。。。默认情况下,
@备用bean被禁用。我们需要在这方面启用替代方案
bean存档的beans.xml描述符,使其可用于
实例化和注入。此激活仅适用于bean
在那个档案里
您可以通过使用@Named注释定义每个实现类,然后通过@inject@Named(“ForTest”)注入所需的类来实现这一点;如果您还没有找到任何解决方案,希望这对您有所帮助
interface A{}
@Named("ForTest")
class AImplForTest implements A{}
@Named("ForProd")
class AImplForProd implements A{}
class B{
@Inject @Named("ForTest") A a;
}
您可以通过使用@Named注释定义每个实现类,然后通过@inject@Named(“ForTest”)注入所需的类来实现这一点;如果您还没有找到任何解决方案,希望这对您有所帮助
interface A{}
@Named("ForTest")
class AImplForTest implements A{}
@Named("ForProd")
class AImplForProd implements A{}
class B{
@Inject @Named("ForTest") A a;
}
这是我第一次尝试的,但我必须在一个项目中找到我的源代码,在另一个项目中找到测试(和AImplForTest)。但“归档”一词是什么意思?也许我真的不明白它的真正含义…这是我第一次尝试的,但我必须在一个项目中找到我的来源,在另一个项目中找到测试(和AImplForTest)。但“归档”一词是什么意思?也许我真的不明白它到底意味着什么。。。