目 录CONTENT

文章目录

@Autowired和@Resource

在水一方
2022-02-27 / 0 评论 / 0 点赞 / 473 阅读 / 442 字 / 正在检测是否收录...

实际在用spring进行开发的时候,通常需要在Controller中来注入service,在service中来注入dao,这个过程往往会通过@Autowired注解来实现依赖注入,但同时,java ee中提供的@Resource注解也能实现注入,那么这两者之间的的区别究竟是什么呢?

@Autowired

默认从容器中获取接口的实现类,注入该属性,byType--根据类型注入,如果接口有多个实现类时按类型注入会报错,可以用Qualifier注解来指定

@Resource

从spring容器中获取接口的实现类,默认是根据名称来进行注入的,如果按名称找不到,则接着按照类型去找

Spring将@Resource注解的name属性解析为bean的名字,type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性则使用byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略

参考视频讲解

0

评论区