1、byName与byType顺序不同
@Autowired在获取并注入bean的时候,需要先根据byType获取,如果找不到或者获取到多个bean,则此时根据字段名称byName进行获取;
@Resource在获取并注入bean的时候,是先根据byName,然后根据byType,不过这个注解也能通过参数显示指定通过哪种方式
2、作用域不同
@Autowired是可以作用在构造器,字段,setter方法上,但是@Resource无法作用在构造器上面
3、支持的方式不同
@Autowired是spring容器中专用的,如果项目替换为别的容器则无法支持;
@Resource是jdk支持的,其余的容器也能支持
4、默认要求不同
@Autowired注解要求注入的bean必须存在,否则就报错;但是@Resource注解如果要注入的bean不存在,则改属性值为null,不会抛错