使用guice和自定义数据源

时间:2012-06-20 06:14:20

标签: java dependency-injection guice

假设我在类之间有一个非常重要的依赖关系树。没有周期,但它有几个层次。在最底部有一个休眠Session

MyService -> MyDao -> Session
MyService -> MyCollaborator -> AnotherCollaborator
MyCollaborator -> MyDao
AnotherCollaborator -> MyDao
AnotherCollaborator -> AnotherDao -> Session

你明白了。

我想在Guice外部手动创建Session,然后使用Guice从MyService向下生成整个图表,使用此Session。我怎么能这样做?。

1 个答案:

答案 0 :(得分:3)

听起来你正在寻找Provider

修改

提供者是一个用户定义的工厂,在进行绑定时可以声明为guice。

它允许用户注入未指定数量的实例(通过注入提供者本身并手动调用)或提供有趣的创建行为,例如创建不是由类型自己的构造函数执行的所需副作用。

因此,它是将其他第三方API与您的依赖项结合的便捷工具:为每种所需类型创建一个提供程序,并让它执行所需的任何设置。

具体地说,它们是一个通用接口,提供单个get()方法,模板化为您希望在其中手动创建的类型。