我们正在创建一个匕首2依赖图
SessionComponent(会话范围)--dependson ---> Appcomponent(Singleton范围)---依赖---> UserMangerComponent(unscoped ...假设是单例)
但是,当我注入userManager(UserManagerComponent提供的依赖项)时,它不会被维护为单例。每次注入都会创建一个新的UserManager。请帮忙......
我无法将单例范围设置为依赖项。
答案 0 :(得分:4)
您提出的结构与Dagger管理范围的方式不兼容。应用程序中只有一个组件应该是@Singleton
,因为组件中未通过组件接口公开的每个绑定可能是@Singleton
,但完全封装在组件实现中。因此,每个组件都将拥有自己的实例,并且您最终会得到2个实例而不是一个实例。
将两个组件合并为一个@Singleton
组件,为用户管理创建新范围,或者手动为用户管理器实施实例管理。