假设我在类之间有一个非常重要的依赖关系树。没有周期,但它有几个层次。在最底部有一个休眠Session
。
MyService -> MyDao -> Session
MyService -> MyCollaborator -> AnotherCollaborator
MyCollaborator -> MyDao
AnotherCollaborator -> MyDao
AnotherCollaborator -> AnotherDao -> Session
你明白了。
我想在Guice外部手动创建Session
,然后使用Guice从MyService
向下生成整个图表,使用此Session
。我怎么能这样做?。
答案 0 :(得分:3)
听起来你正在寻找Provider?
修改强>
提供者是一个用户定义的工厂,在进行绑定时可以声明为guice。
它允许用户注入未指定数量的实例(通过注入提供者本身并手动调用)或提供有趣的创建行为,例如创建不是由类型自己的构造函数执行的所需副作用。
因此,它是将其他第三方API与您的依赖项结合的便捷工具:为每种所需类型创建一个提供程序,并让它执行所需的任何设置。
具体地说,它们是一个通用接口,提供单个get()
方法,模板化为您希望在其中手动创建的类型。