-
相同:这两个注解都可以完成属性注入
-
不同点:
-
并不是出自同一个地方的,
@Autowired是Spring框架中的,@Resource是JDK扩展包中的,属于标准注解,更加通用(JSR-250标准中指定的注解) -
作用的范围不同,@Autowired作用的范围更广
@Autowired可以用在属性上,setter方法上,构造方法上,构造方法参数上@Resource可以用在属性上,setter方法上
-
装配方式不同,
@Resource更加全面和强大,@Autowired单独只能根据byType@Autowired默认根据类型装配(byType),要通过名称装配,需要再使用@Qualifier指定name@Resource默认根据名称装配(byName),没有使用@Resourcename参数指定名称,则默认使用属性名作为name装配,如果name匹配不到,则自动使用类型(byType)装配
-