1

我正在使用父注入器和子注入器,并且我想确保我不会意外访问父注入器中的一个类,该类旨在绑定在子注入器中。如果父注入器访问该类,它可能会自动绑定(并且不正确,因为范围很重要)。

有没有办法可以强制自动绑定在父注入器中失败,或者至少报告运行时错误?

例如,如果我有一个Foo“非法”请求 Bar 的方法:

class Bar { @Inject Bar() {} } // Shouldn't be accessible in Foo's injector
class Foo { @Inject Foo(Bar bar) {} } // Binding should fail here
4

2 回答 2

0

显然,这样做的唯一方法是为每个被禁止的类编写一个提供程序方法。每个提供程序方法都会引发运行时异常。

我已提交增强请求以支持在绑定时执行此操作。

于 2012-07-19T20:34:43.783 回答
0

看看活页夹文档:

http://google-guice.googlecode.com/git/javadoc/com/google/inject/Binder.html

requireExplicitBindings()可能是你需要的。通过在您的模块中使用该语句,自动绑定被禁用,只有通过bind()或配置的类provides被注入。

于 2012-07-19T17:46:28.017 回答