Java Guice:在不使用@singleton或修改实现的情况下配置singleton
我在一个独立的库中有一个Java Guice:在不使用@singleton或修改实现的情况下配置singleton,java,binding,singleton,guice,Java,Binding,Singleton,Guice,我在一个独立的库中有一个Service接口和serviceinpl实现类,我不想对Guice有任何依赖 然而,我在一个使用服务的应用程序中使用Guice。在这个应用程序中,我想将Service绑定到ServiceImpl,我想ServiceImpl成为一个单例 通常我会用@Singleton注释serviceinpl,然后像这样绑定 bind(Service.class).to(ServiceImpl.class); 但是由于ServiceImpl不依赖于Guice,因此我无法添加注释,或者用
Service
接口和serviceinpl
实现类,我不想对Guice有任何依赖
然而,我在一个使用服务的应用程序中使用Guice。在这个应用程序中,我想将Service
绑定到ServiceImpl
,我想ServiceImpl
成为一个单例
通常我会用@Singleton
注释serviceinpl
,然后像这样绑定
bind(Service.class).to(ServiceImpl.class);
但是由于ServiceImpl
不依赖于Guice,因此我无法添加注释,或者用任何Guicy修改其源代码
我可以将Service
绑定到应用程序模块中的serviceinpl
,但我不清楚如何将serviceinpl
配置为应用程序模块中的单例“外部”(或其他方式)。请参阅:
范围
Guice使用注释来标识作用域。通过将范围注释应用于实现类来指定类型的范围
也可以在bind语句中配置作用域:
bind(Service.class).to(serviceinpl.class).in(Singleton.class)代码>应该适合您