@Resource和@Autowired两种注入区别

第一种注入方式:

@Autowired
private WorkOrderBo                   logisticsWorkOrderBo;

第二中注入方式:

@Resource(name = "workOrderLogisticsBo")
private WorkOrderBo              workOrderLogisticsBo;

有何区别?

阅读 6k
3 个回答

@Resourcejavax.annotation包里定义,是java的一部分
@Autowiredorg.springframework.bean.factory包里定义,是spring框架的一部分

这算是区别么?

功能上,二者近乎一致:

@Autowired

  1. 匹配Type

  2. Qualifier约束

  3. 匹配Name

@Resource

  1. 匹配Name

  2. 匹配Type

  3. Qualifier约束(如果按Name匹配成功,忽略Qualifier)

  • @Autowired是Spring的注解,@Resource是Java EE自带的注解

  • @Autowried不能直接指定按name注入,需要配合@Qualifier才能实现按name指定

@Resource
private WorkOrderBo                   logisticsWorkOrderBo;//会直接按照logisticsWorkOrderBo这个字段注入
  • @Resource 可以按照name指定也可以按照type指定

知乎有这个问答

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏