0

我目前正在开发一个 Java 多模块项目,并希望通过 DI 减少耦合。作为一个最小的例子,我有两个模块。模块 A 是我通过 Guice 进行所有注入的客户端。模块 A 调用模块 B 中的类,这些类主要是 EJB,并通过 @EJB 注释注入自己。要让模块 A 调用模块 BI 中的类,请使用 JNDI 查找。我现在尝试摆脱 JNDI 并通过 guice 将类注入模块 B 中。当我这样做时,@EJB 不再起作用。有没有办法通过guice做到这一点?

4

1 回答 1

1

您所做的一切都是可能的,但仅适用于测试场景,您可以从控制台访问 EJB。真实应用程序客户端代码不应该直接访问 bean。此外,尽管您可以编写自定义注入来注入 EJB 资源,但您的 bean 在 EJB 容器(实体、资源、服务调用、拦截器、事务)之外的行为会有所不同。所以一般来说:不要在生产代码中混合使用 guice 和 ejb 注入。

于 2012-08-01T10:42:10.857 回答