我正在使用Dropwizard 0.8.1,我发现每次调用所属路径时都会创建资源对象。
我认为这样做是因为当应用程序被引导时,资源是由类注册的。
无论如何都要强迫资源成为Singleton?
我尝试使用@Singleton
和@LazySingleton
(通过Governator),但似乎无效。我该如何解决这个问题?
答案 0 :(得分:2)
当您将它们指定为类注释时,Guice将覆盖绑定。 Documentation:
如果类型和
bind()
语句中的范围存在冲突,则将使用bind()
语句的范围。如果某个类型使用您不想要的范围进行注释,请将其绑定到Scopes.NO_SCOPE
。
您可以通过在Module
中的绑定中指定Singleton来解决此问题,例如
protected void configure() {
bind(Foo.class).toProvider(FooProvider.class).in(Singleton.class);
}