我在一个独立的库中有一个Service
接口和ServiceImpl
实现类,我不想对Guice有任何依赖。
但是我在使用Service
的应用中使用Guice。在这个应用程序中,我想将Service
绑定到ServiceImpl
,我希望ServiceImpl
成为单身人士。
通常我会通过ServiceImpl
注释@Singleton
,然后按照这样的方式进行绑定
bind(Service.class).to(ServiceImpl.class);
但由于ServiceImpl
不依赖于Guice,我无法添加注释,或以其他任何方式修改其来源Guicy。
我可以在应用的模块中将Service
绑定到ServiceImpl
,但我不清楚如何在应用的模块(或其他方面)中将ServiceImpl
配置为“外部”单身
答案 0 :(得分:3)
请参阅:https://github.com/google/guice/wiki/Scopes
作用域
Guice使用注释来识别范围。通过将范围注释应用于实现类来指定类型的范围。
也可以在绑定语句中配置范围:
bind(Service.class).to(ServiceImpl.class).in(Singleton.class);
应该适合你。