@Resource和@Autowired的区别

  1. 来源与用途:

    • @Autowired是Spring框架提供的,用于依赖注入。它可以应用在字段、setter方法或构造方法上。
    • @Resource是Java提供的,也是用于依赖注入。它同样可以应用在字段或setter方法上。
  2. 依赖查找顺序:

    • @Autowired在Spring容器中查找依赖时,先按类型查找,如果存在多个bean再按名称查找。
    • @Resource在Spring容器中查找依赖时,先按名称查找,如果找不到再按类型查找。
  3. 支持的参数:

    • @Autowired只支持一个必需的参数。
    • @Resource支持七个参数。
  4. 依赖注入方式:

    • @Autowired支持属性注入、构造方法注入和setter注入。
    • @Resource支持属性注入和setter注入。
  5. 编译器错误提示:

    • 如果在编写依赖注入的代码时使用@Autowired注解注入的是mapper对象,那么编译器会提示错误信息。
    • 如果使用@Resource注解则不会出现该错误。

你可能感兴趣的:(java)