我在google appengine项目中使用Dagger2,我有几个servlet使用,应该是给定对象(MyObject)的单例实例。
@Singleton
@Component(modules = {MyModule.class})
public interface MyComponent {
IMyObject object();
}
然后我需要DaggerMyComponent.create()也是一个单例,以便我可以在所有servlet中获得相同的IMyObject。为此,我添加了一个
DaggerMyComponent INSTANCE = DaggerMyComponent.create()
到我的MyComponent界面。但是,仍然允许再次调用create(),这对我来说不一定是一个很好的解决方案。
有什么想法吗?
谢谢!
答案 0 :(得分:2)
不幸的是,文档似乎在说Dagger对版本2.0.1没有提供这样的限制
为了获得与范围相关的正确行为 注释,调用者的责任来实例化新的 适当时的组件实例。单例组件,用于 实例,每个应用程序只应实例化一次,而a 每个请求应该实例化一次RequestScoped组件。
http://google.github.io/dagger/api/latest/dagger/Component.html