Guice:配置不带@Singleton的单例或以其他方式修改实现

时间:2015-07-03 20:11:41

标签: java binding singleton guice

我在一个独立的库中有一个Service接口和ServiceImpl实现类,我不想对Guice有任何依赖。

但是我在使用Service的应用中使用Guice。在这个应用程序中,我想将Service绑定到ServiceImpl,我希望ServiceImpl成为单身人士。

通常我会通过ServiceImpl注释@Singleton,然后按照这样的方式进行绑定

bind(Service.class).to(ServiceImpl.class);

但由于ServiceImpl不依赖于Guice,我无法添加注释,或以其他任何方式修改其来源Guicy。

我可以在应用的模块中将Service绑定到ServiceImpl,但我不清楚如何在应用的模块(或其他方面)中将ServiceImpl配置为“外部”单身

1 个答案:

答案 0 :(得分:3)

请参阅:https://github.com/google/guice/wiki/Scopes

  

作用域

     

Guice使用注释来识别范围。通过将范围注释应用于实现类来指定类型的范围。

     

也可以在绑定语句中配置范围:

bind(Service.class).to(ServiceImpl.class).in(Singleton.class);应该适合你。