开发者社区 问答 正文

为什么不建议使用@Autowired和@Inject on字段,但是在Spring / Intell

我注意到Intellij警告我有关使用带有@Autowired和@Inject注释的字段注入的信息。但是,使用@Resourceon字段很好。这背后的原因是什么?

请注意,我并不是在问为什么不鼓励使用电场注入。我想知道为什么通过@Resource“更好/更安全”进行注入-至少根据某些皮棉规则

展开
收起
垚tutu 2019-12-19 16:24:18 3486 分享 版权
1 条回答
写回答
取消 提交回答
  • 从贵州电信网厅,到阿尔巴尼亚TTNET、委内瑞拉Cantv的固网激活等项目,再到激活产品研发,在中兴软创国际OSS产品线开发岗位上有6年开发经验,如今在阿里云业务运营中台做商品和账务,对企业级应用开发和架构有丰富经验。

    我觉得原因有二 1、第一是Autowired和Resource这两个注解在实现机制上的差异 @Autowired 默认根据ByType,当一个类有两个对象的时候,会报错。 @Resource 默认是ByName,可以精准的找到 的配置项。 2、@Resource是Java标准注解,而@Autowired是Spring提供的注解

    2020-03-31 17:16:41
    赞同 展开评论