我正在打包一个带有多个接口实现的WAR。我有一个没有限定符的实现(即@Default)和一个@Alternative的实现。我想知道是否有一种简单的方法(无需编辑WAR本身)来更改beans.xml以指向备用实现,而无需打包/交付两个不同的WAR文件。如果有兴趣的话,我正在使用JBoss EAP 6.4。
如果没有,最好的方法是什么?我想我可以提供一个属性文件,他们可以选择一个实现。然后,我可以使用@Inject @Any Instance<Intf>
并在服务器启动期间匹配正确的实现。
编辑: 最终目标是能够使用替代实现,即使它没有在beans.xml替代中明确添加。
此要求的原因是相同的服务可能与外部系统的不同版本连接。我想默认提供默认的最新适配器实现。同时,如果需要,客户应该能够回退到较旧的实现。