Dropwizard 0.8和GuiceBundle Governator:强制资源类为Singleton

时间:2015-05-14 16:05:48

标签: java guice dropwizard

我正在使用Dropwizard 0.8.1,我发现每次调用所属路径时都会创建资源对象。

我认为这样做是因为当应用程序被引导时,资源是由类注册的。

无论如何都要强迫资源成为Singleton?

我尝试使用@Singleton@LazySingleton(通过Governator),但似乎无效。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

当您将它们指定为类注释时,Guice将覆盖绑定。 Documentation

  

如果类型和bind()语句中的范围存在冲突,则将使用bind()语句的范围。如果某个类型使用您不想要的范围进行注释,请将其绑定到Scopes.NO_SCOPE

您可以通过在Module中的绑定中指定Singleton来解决此问题,例如

protected void configure() {
    bind(Foo.class).toProvider(FooProvider.class).in(Singleton.class);
}