如果有疑问和不太懂的,可以提问。我也是初学者,大家互相交流,互相进步
。
引用:https://www.cnblogs.com/williamjie/p/9198157.html
1、共同点
Resource和@Autowired都是做bean容器的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。
两者都可以写在字段和setter方法上。两者如果都写在字段上,那么就不需要再写setter方法。
2.不同点
@Autowired是根据type类型依赖注入,简单来说就是根据某一类需要的对象类型来找,比如业务层需要持久层对象,那就再bean容器中找到持久层类的对象然后DI注入。列如:
@Autowired
private StudentDao studentDao;
上面找的就是StudentDao对象。
而@Resource,是根据name名字来找的,也就是说上面的 studentDao要跟bean容器中实列化StudentDao 的对象名一样,不然运行会报错。
当然Resource有type和name
②如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常。
③如果指定了type,则从上下文中找到类似匹配的唯一bean进行装配,找不到或是找到多个,都会抛出异常。
如果有疑问和不太懂的,可以提问。我也是初学者,大家互相交流,互相进步
。