在3.0之前的spring中,哪一个都不重要。
在Spring 3.0中,支持标准(JSR-330)注释
@javax.inject.Inject-将其与结合使用
@Qualifier。请注意,spring现在还支持
@javax.inject.Qualifier元注释:
@Qualifier@Retention(RUNTIME)public @interface YourQualifier {}
所以你可以有
<bean > <qualifier type="YourQualifier"/></bean>
要么
@YourQualifier@Componentpublic class SomeBean implements Foo { .. }
然后:
@Inject @YourQualifier private Foo foo;
这样就减少了字符串名称的使用,因为字符串名称可能会拼写错误并且难以维护。
至于原始问题:两者都未指定注释的任何属性,而是按类型执行注入。区别在于:
@Resource
允许你指定注入的bean的名称@Autowired
允许你将其标记为非强制性。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)