我使用Spring 3.2.2并想知道是否有一种方法可以通过类类型注入bean,而不必明确地给它们一个字符串名称。例:命名类的NoUniqueBeanDefinitionException
@Named
public MyClass{
}
@Named
public MyOtherClass extends MyClass{
}
@Named
public class Foo{
public void blah(){
MyClass myClass = context.getBean(MyClass.class);
}
}
这将产生:
org.springframework.beans.factory.NoUniqueBeanDefinitionException:式[MyClass的]被定义的任何合格的豆:预期单一匹配豆但发现2:MyClass的,myOtherClass
有没有一种方法可以说“使用与类名完全匹配的名称”而不使用字符串名?
换句话说,我不想做的事:
@Named("MyClass")...
@Named("MyOtherClass")...
MyClass myClass = context.getBean("MyClass");
谢谢!
有没有办法用@Named做到这一点?我宁愿使用JSR标准 – user973479 2013-03-20 13:07:35
你说你已经在使用Spring 3.2.2,那为什么你不使用它的注释? – 2013-03-20 13:18:12
我更喜欢JSR注释,所以更容易切换道路(如有必要)。从Spring使用JSR注释没有任何问题。除非Spring注释专门提供了一个工作解决方案,否则我没有看到切换的有效理由 – user973479 2013-03-20 13:19:57