Spring中有@Autowired和@Resource的区别?
-
1,@Autowired--Spring提供的注入注解,也就是由第三方提供的。@Resource-->java 官方进行的定义(建议优先使用官方)
-
2,二者的机制不同,“@Autowired”只能按照类型在IOC容器中进行匹配。。而“@Rresource”可以通过设置“name”属性,指定Bean id,也就是可以按照“name”进行匹配。
当“@Resource”不设置“name”属性时,会将“属性名”作为默认的“Bean id”去IOC同期中查找,当有时属性名和IOC容器中的“bean id”不一样。这种情况下才会跟“@Autowired”一样采用类型进行匹配。其更加智能。(如果设置了“name”属性,则将设置的名称作为“bean id”进行精准匹配。如果没有设置“name”属性,优先使用属性名作为“bean id”到IOC容器中进行查找,如果匹配不到,再按照类型在 IOC容器中进行查找)