栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring中几个自动注入的注解的优先级

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring中几个自动注入的注解的优先级

本文讨论以下几个注解的优先级:
@Resource    javax.annotation.Resource;
@Autowired   org.springframework.beans.factory.annotation.Autowired;
@Qualifier   org.springframework.beans.factory.annotation.Qualifier
@Primary     org.springframework.context.annotation.Primary

说明:

@Resource通过byName注入

@Autowired通过byType注入

@Qualifier用于指定bean的名称

@Primary用来指定某个接口的优先实现(默认使用被该注解所注解的类的对象)

优先级关系

接口只有一个实现类

@Resource @Autowired 效果一样

@Qualifier @Primary 加不加无所谓

接口有多个实现类

@Autowired @Qualifier @Primary 一起用,@Qualifier > @Primary

@Resource @Qualifier @Primary 一起用,@Resource > @Qualifier > @Primary

简言之:

如果有@Resource,那么先用变量名作为bean的名字去查找bean,如果找到了,那就将该bean赋值给变量;

如果没有找到,那么再根据@Qualifier的value作为bean的名字去查找bean,找到则将该bean赋值给变量,没找到则报错;

如果没有使用@Primary,那么根据哪个子类有@Primary来决定使用哪个子类的对象。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/285534.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号