1、@autowired是spring定义的注解,@resource是有JSR-250规范定义的注解,并被spring支持;
2、@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了。@Resource有两个属性是比较重要的,分是name和type,Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略
3、theBeanFactory, ApplicationContext, ResourceLoader, ApplicationEventPublisher, andMessageSource 这些接口@Resource都是通过byType自动注入
引用:
spring官方文档:
5.9.2@Autowired
5.9.5 @Resource