【发布时间】:2015-07-16 22:30:26
【问题描述】:
我有一个类,每个请求都应该从该类中创建(和销毁)实例(在我的示例中为 dbSession),还有一些其他类使用每个请求对象的实例。像这样:
webservice --> repository --> dao --> dbSession
(--> 表示使用)
但是我有一个类似的用例,但 dbsession 不应该绑定到请求。像这样:
webservice --> otherService --> repository --> dao --> dbSession
目前 dbSession 类绑定到一个请求。要实现其他用例,数据库会话不能被请求绑定。我可以使用限定符来做到这一点,但是我必须为两个范围复制一堆(需要的)提供程序方法。
所以,我正在寻找另一种解决方案。是否可以传播范围?我的意思是依赖注入目标范围内的对象?
@request webservice --> @myScope otherService --> @myScope repository --> @myScope dao --> @myScope dbSession
在示例中,otherService 的所有依赖项都应与 otherService 在同一范围内(对 otherService 的调用是异步的)。
Guice 可以实现这样的功能吗?只是出于好奇:CDI 可以吗?
【问题讨论】:
-
貌似是机器人腿问题的案例:github.com/google/guice/wiki/…
标签: java dependency-injection scope cdi guice