@Autowired和@Resource的区别

85 阅读1分钟
  • 相同:这两个注解都可以完成属性注入

  • 不同点:

    1. 并不是出自同一个地方的,@AutowiredSpring框架中的,@Resource是JDK扩展包中的,属于标准注解,更加通用(JSR-250标准中指定的注解)

    2. 作用的范围不同,@Autowired作用的范围更广

      • @Autowired可以用在属性上,setter方法上,构造方法上,构造方法参数上
      • @Resource可以用在属性上,setter方法上
    3. 装配方式不同,@Resource更加全面和强大,@Autowired单独只能根据byType

      • @Autowired默认根据类型装配(byType),要通过名称装配,需要再使用@Qualifier指定name
      • @Resource默认根据名称装配(byName),没有使用@Resourcename参数指定名称,则默认使用属性名作为name装配,如果name匹配不到,则自动使用类型(byType)装配