【发布时间】:2019-12-11 22:40:35
【问题描述】:
我最近开始在我工作的一个项目中使用 CDI,但我遇到了一种特定情况,我还没有找到解决方案。有人可以给我一些提示吗?我真的很感激。
我有一个使用自定义框架的应用程序。
-
在自定义框架中,我有一个注入 bean 的 ejb。
public class MyEjb implements MyEjbBI { ... private IServiceHolder serviceHolder; ... } public interface IServiceHolder { ... } public class DefaultServiceHolder implements IServiceHolder { ... } -
在我的应用程序中,上述代码被打包到一个 jar 文件中,并且该 jar 还包含一个我无法更改的 bean.xml 文件,因此我无法在自己的实现中使用 @Alternative
public class MyServiceHolder extends IServiceHolder { ... }
我的问题:是否有可能在运行时将“MyEjb”(默认)注入的 serviceHolder 替换为“MyServiceHolder”实现?
我提到我也可以在框架代码中进行更改。 我已经阅读了一些关于生产者方法的内容,但我并不真正了解如何使用它们。
谢谢!
【问题讨论】:
标签: cdi