【发布时间】:2013-12-22 23:31:44
【问题描述】:
不得不处理 Guice,我想知道我应该如何处理模块方面的依赖关系。
在 Guice 中,每个模块都由一个实例提供。因此,如果我有一个需要某个服务的模块,它会创建该模块并添加一个绑定到该服务并安装它 (binder.install(module))。
现在我有两个独立的模块,它们完全可以独立使用,并且都安装了相同的数据库模块。
独立使用两个模块没有问题,但如果两个模块在同一个应用程序中使用会发生什么?数据库模块将由两个模块独立加载,这是不正确的。
有没有办法询问绑定器某个类型是否已经绑定?我无法使用 getProvider 进行检查,因为返回的所有内容都是 LookupProvider,无论某些内容是否已绑定。
那么如何处理这种情况呢?
更新:
它接缝 Guice 无法提供以下功能:
- 检查给定模块是否已加载。
- 检查给定的类是否已绑定。
- 在配置中使用提供者能够进行分布式配置(模块能够配置正在贡献的对象)。
【问题讨论】: