Guice 3.0 - 构造函数绑定的目的?

时间:2011-12-21 09:22:41

标签: java guice

我刚刚在Guice的用户指南中阅读了有关Constructor Bindings的章节,但并不真正了解何时使用构造函数绑定。

据我所知,它们提供与@Provider方法相同的功能,除了使用Constructor Bindings创建的实例参与AOP。它是否正确?任何人都可以提供比文档更好的例子吗?

1 个答案:

答案 0 :(得分:4)

  

据我了解,它们提供与@Provider方法相同的功能,除了使用Constructor Bindings创建的实例参与AOP。

这或多或少是正确的,尽管构造函数绑定有一些优点。基本上,它是一种绑定到类的方式,就好像它在特定构造函数上有@Inject一样,即使它没有,也不能自己添加注释。与@Provides方法不同,您可以编写实用程序以允许您执行更多有趣的操作。例如,你可以有一个utilitiy方法返回一个类的唯一构造函数,如果有多个则抛出异常:

bind(Foo.class).toConstructor(getOnlyConstructor(FooImpl.class));

如果您出于某种原因需要使用其他注释(除@Inject之外),还可以使用实用程序方法获取用于绑定的注释构造函数。