【发布时间】:2018-01-15 09:24:40
【问题描述】:
假设我有两个应用程序共享同一个库。这个库包含常见的类,如 DAO、Utils 等。共享库中的所有内容都与 Guice 连接。我的两个应用程序依赖于这个库,但不直接依赖于 Guice。
______ ______ ______
| | | | | |
| APP1 |->| LIB |<-| APP2 |
'------' '------' '------'
我目前使用这样的东西:
static <T> Utils.getInstanceOf (Class<T> type);
这只是一个包装器:
injector.getInstance (Class<T> type);
但是 guice 文档说:
在可行的情况下,避免使用这种方法,而倾向于使用 Guice 提前注入你的依赖。
那么,为这两个应用程序提供依赖注入而无需在 Guice 模块中手动绑定它们的最佳方式是什么?
【问题讨论】:
-
你的设计是否排除了
@Inject的使用? -
一点也不。我在共享库中使用它。忘了提到客户端应用程序中有 servlet 和 Jersey REST 类 - 即在 servlet 容器(非 JavaEE)中运行的 webapps。
标签: java dependency-injection guice