spring--@Autowired @Qualifier @Resource @Value 四者的区别
@Autowired
,@Qualifier
,@Resource
,和 @Value
是 Spring 框架中用于依赖注入的注解,它们各有特点和用途:
@Autowired
:@Autowired
注解用于自动装配 Spring 容器中的 bean。- 它默认按类型(byType)进行依赖注入。
- 当存在多个同类型的 bean 时,它可以和
@Qualifier
注解一起使用,以指定注入哪个具体的 bean。 @Autowired
可以用于构造器、字段、setter 方法和其他任何方法。
@Qualifier
:@Qualifier
注解通常与@Autowired
注解结合使用,用于消除自动装配过程中的歧义。- 它按名称(byName)指定要注入的 bean 的名称。
- 当有多个同类型的 bean 而需要指定一个特定的 bean 时,使用
@Qualifier
来提供 bean 的名称。
@Resource
:@Resource
注解是由 JSR-250 规范定义的,它也可以用于依赖注入。- 它可以按名称(byName)或按类型(byType)注入依赖,但默认是按名称进行注入。
- 如果没有指定名称,它会使用字段名称或 setter 方法的名称作为默认名称来查找 bean。
@Resource
可以用于字段和 setter 方法。
@Value
:@Value
注解用于注入基本类型和 String 类型的属性值。- 它可以用于注入从配置文件中读取的属性值,或者注入表达式计算的结果。
@Value
注解通常与@PropertySource
注解一起使用,后者指定了属性文件的位置。@Value
可以用于字段、方法参数和构造器参数。
举例来说:
@Component
public class MyComponent {
@Autowired
private SomeService someService; // 自动装配 byType
@Autowired
@Qualifier("specificBeanName")
private SomeService someServiceWithQualifier; // 指定 bean 名称 byName
@Resource(name = "specificBeanName")
private SomeService someServiceWithResource; // 按名称注入,如果没有指定 name 属性,会按字段名称注入
@Value("${some.property}")
private String propertyValue; // 注入配置文件中的属性值
// ...
}
在使用这些注解时,需要考虑你的具体场景和需求,选择最适合的注解来实现依赖注入。
spring--@Autowired @Qualifier @Resource @Value 四者的区别的更多相关文章
- spring 框架的 @Autowired 和 @Resource 两种注解的区别
最开始做项目时,依赖注入用到的注解都是 J2EE 的 @Resource,那时还根本不了解 spring 有 @Autowired.心塞. 前两天想到估计有很多刚开始学习 java 的童鞋可能对这两个 ...
- spring @Autowired或@Resource 的区别
1.@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上. 2.@Autowired默认按类型装配(这个注解是属于spring的),默认情况下必 ...
- spring @Autowired与@Resource的区别
1.@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上. 2.@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必 ...
- Spring @Autowired、@Resource、@Required、@Component、@Repository、@Service、@Controller注解的用法和作用
Spring @Autowired,@Resource,@Required注解的用法和作用 Spring中 @Autowired标签与 @Resource标签 的区别 Spring注解@Compone ...
- @Autowired @Qualifier @Resource
@Autowired 用于对Bean的属性变量,属性的setter()方法及构造方法进行标注,配合对应的注解处理器完成Bean的自动装配工作.默认按照Bean的类型进行装配. @Resource 其作 ...
- spring注解-@Autowired。@Resource。@Service
Spring的@Autowired注解.@Resource注解和@Service注解 什么是注解 传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺点: ...
- Spring @Autowired使用介绍
参考博客: https://blog.csdn.net/u013412772/article/details/73741710 引用文章地址: https://my.oschina.net/Helio ...
- 关于@Autowired和@Resource注解区别
区分一下@Autowired和@Resource两个注解的区别: 1.@Autowired默认按照byType方式进行bean匹配,@Resource默认按照byName方式进行bean匹配 2.@A ...
- Spring 注释 @Autowired 和@Resource
一. @Autowired和@Resource都可以用来装配bean,都可以写在字段上,或者方法上. 二. @Autowired属于Spring的:@Resource为JSR-250标准的注释,属于J ...
- Spring 注释 @Autowired 和@Resource 的区别
Spring 注释 @Autowired 和@Resource 的区别 一. @Autowired和@Resource都可以用来装配bean,都可以写在字段上,或者方法上. 二. @Autowired ...
随机推荐
- Codeforces Round #426 (Div. 2) A. The Useless Toy
A. The Useless Toy time limit per test 1 second memory limit per test 256 megabytes input standard i ...
- vue3.3新特性defineOptions
当我们使用选项式api时候,可以轻松创建与setup()选项同级别的选项. 但是,用了
- 组合式api的使用方式
方式一:通过setup选项 <script> export default { setup(){ // 提供数据 // 提供函数 // 提供计算属性等等..... } } </scr ...
- Mongo 数据库备份和恢复命令
转载请注明出处: 在MongoDB中,使用mongodump和mongorestore命令来备份和恢复数据库 mongodump 1.使用方法: 使用 mongodump 命令可以备份MongoDB数 ...
- 使用 vve-i18n-cli 来一键式自动化实现国际化
[Github:vue-viewer-editor/vve-i18n-cli] 这是我同事开发的国际化自动处理脚本,我进行过一次扩展,让其也支持我们一个 jQuery 老项目的国际化日常维护 至此,我 ...
- 欢迎使用CSDN-markdown编辑器测试
这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一 ...
- Windows10 Docker安装详细教程
前言: 在上一章节已经成功的在Linux CentOS 8.4远程服务器中安装了Docker,下面让我们一起来试试如何在Windows10中安装Docker并运行起来.有人说你既然在Linxu环境中安 ...
- linux中nginx下载安装部署
反向代理 动静结合 负载均衡 下载 wget https://nginx.org/download/nginx-1.24.0.tar.gz 官网下载稳定版 解压 tar -zxvf nginx-1.2 ...
- 华为云CodeArts Req需求管理工具,7大特性限时免费体验
摘要:一图了解什么是华为云CodeArts Req 本文分享自华为云社区<华为云CodeArts Req需求管理工具,7大特性限时免费体验>,作者:华为云PaaS服务小智. 一图了解什么是 ...
- 华为云UGO:醒醒!你的异构数据库迁移难题有救了
摘要:华为云推出的数据库和应用迁移 UGO,正是一款专注于异构数据库结构迁移和应用SQL转换的专业云服务. 数字化时代下,上云已成为企业管理者的基本共识,随着技术日新月异,上云也变得轻松简单起来,但异 ...