我正在尝试Google Guice作为我的新项目的依赖注入框架,并从春季转移。 我必须使用@Provides编写多个提供程序,其中从一个提供程序创建的实例将用作单独模块中其他提供程序的输入(有时是相同的模块)。 为了绑定从模块生成的实例,我使用的是Guice的
@BindingAnnotation
创建自定义注释。
我只是想知道Google Guice的优先级如何?
就像在春天我们有一个用于创建bean的@Dependson注释,Guice或Guice中是否有一个替代方案可以自行生成依赖图?
使用从@BindingAnnotation创建的注释来绑定提供程序的实例吗?
答案 0 :(得分:0)
[是] Guice足够聪明,可以自己生成依赖图吗?
我不熟悉Spring,但我的直觉是是。
使用从中创建的注释来绑定提供程序的实例 @BindingAnnotation够吗?
只要提供者被注释为提供某些内容(使用@Provides
),Guice将使用该注释作为默认值,除非在模块内部被覆盖。
但是,使用BindingAnnotations 确实在模块中包含一些代码以将它们绑定在一起,
https://github.com/google/guice/wiki/BindingAnnotations
bind(CreditCardProcessor.class)
.annotatedWith(PayPal.class)
.to(PayPalCreditCardProcessor.class);
所以我怀疑基于Binding Annotations的注释比@Provides
具有更强的强度,只要你有模块中的对应物,就足以将你的提供者绑定在一起。