Java 在Guice中使用命名注入
我正在使用Guice进行依赖注入,我有点困惑。在不同的包中有两个名为的注释:Java 在Guice中使用命名注入,java,dependency-injection,guice,Java,Dependency Injection,Guice,我正在使用Guice进行依赖注入,我有点困惑。在不同的包中有两个名为的注释: com.google.inject.name.Named和javax.inject.Named(JSR330?) 我渴望依赖javax.inject.*。代码示例: import javax.inject.Inject; import javax.inject.Named; public class MyClass { @Inject @Named("APrefix_CustomerTypeProvi
com.google.inject.name.Named
和javax.inject.Named
(JSR330?)
我渴望依赖javax.inject.*
。代码示例:
import javax.inject.Inject;
import javax.inject.Named;
public class MyClass
{
@Inject
@Named("APrefix_CustomerTypeProvider")
private CustomerTypeProvider customerTypeProvider;
}
在我的命名模块中,我可能有以下行:
bind(CustomerTypeProvider.class).annotatedWith(...).toProvider(CustomerTypeProviderProvider.class);
问题是:我很好奇我应该把什么放在点的位置?我希望类似于com.google.inject.name.Names.named(“APrefix\u CustomerTypeProvider”)
的东西,但是这个返回com.google.inject.name.named
,而我需要javax.inject
中的那个
CustomerTypeProviderProvider.class.getAnnotation(javax.inject.Named.class)
也不适合,因为CustomerTypeProviderProvider
(忽略愚蠢的名称,遗留问题)没有注释。如Guice wiki上所述。你不应该担心那件事。甚至建议在可用时使用javax.inject.*
,就像您喜欢的那样(在同一页的底部)
印刷品:
java.inject: foo
guice: foo
java.inject: foo
guice: foo