spring中的依赖注入

文章目录

    • spring中的依赖注入
      • 一、@Autowired
      • 二、@Qualifier
      • 三、@Resource
      • 四、总结

spring中的依赖注入

这里主要讲述三个注解装配

一、@Autowired

作用:自动按照类型注入。只要容器中唯一的一个bean对象类型和要注入的变量类型匹配,就可以注入成功。

如果ioc容器中没任何bean的类型和要注入的变量类型匹配,则报错。

如果Ioc容器中多个类型匹配时:必须用**@Qualifier(value=“xx”)**进行指定,否则就会报错

出现位置:可以是变量上,也可以是方法上。

细节:在使用注解注入时,set方法就不是必须的了。

    public @interface Autowired {boolean required() default true;}

特别:

//如果显示定义了Autowired的required属性为false,说明这个对象可以为null,否则不允许为空@Autowired(required = false)

二、@Qualifier

作用:在照类中注入的基础之上再照名称注入。在给类成员注入时不能单独使用。但是在给方法参数注入时可以。

属性:value:用于指定注入bean的id。

如果@Autowired自动装配的环境比较复杂,自动装配无法通过一个注解【@Autowired】完成的时候我们可以使用@Qualifier(value=“xx”)去配合@Autowired的使用,指定一个唯一的bean对象注入。

@Autowired
@Qualifier(value = "car")
private Movable movable;

三、@Resource

作用:直接照bean的id注入。它可以独立使用。

@Resource(name = "car")
private Movable movable;

这段代码和上面的代码等效

注意:以上注入都只能注入其他bean类型的数据,而基本类型和String类型无法使用上述注解实现。
另外,集合类型的注入只能通过XML来实现。

四、总结

@Resource和@Autowired的区别:

  1. 都是用来自动装配的,都可以放在属性字段上。
  2. @ Autowired 通过byType的方式实现,而且必须要求这个对象存在。
  3. @Resource 默认通过byname的方式实现,如果找不到名字,则通过byType实现。如果两个都找不到的情况下,就报错。
    @Resource 默认通过byname的方式实现,如果找不到名字,则通过byType实现。如果两个都找不到的情况下,就报错。
  4. @Autowired 通过byType的方式实现,@Resource 默认通过byname的方式实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/46426.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL5.7社区版本在CentOS7系统上的安装

MySQL5.7社区版本在CentOS7系统上的安装 1.配合yum仓库 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm 2.使用yum安装MySQL5.7 yum -y install mysql-community-server 3.安装…

面向铁路、地铁旅客信息系统(PIS)的上架型整机,铁路专用M12网络接口,满足欧洲铁路应用标准

上架型整机 2U 19寸上架型整机,采用高性能低功耗处理器,能应用在宽温环境下,并满足欧洲铁路应用标准EN50155关于电磁兼容性,冲击和振动测试试验的要求,是一款面向铁路、地铁旅客信息系统(PIS)的…

C# 关于 PaddleOCRSharp OCR识别的疲劳测试

目录 关于 PaddleOCRSharp 应用范例演示 ​范例运行环境 疲劳测试 添加组件库 方法设计 调用示例 小结 关于 PaddleOCRSharp PaddleOCRSharp 是百度飞桨封装的.NET版本 OCR dll 类库,OCR(Optical Character Recognition)工具可以将…

【Java面向对象】抽象类和接口

文章目录 1.抽象类2.常见的抽象类2.1 Number类2.2 Calendar 和GregorianCalendar 3.接口4.常见接口4.1 Comparable 接口4.2 Cloneable 接口4.3 深浅拷贝 5.类的设计原则 1.抽象类 在继承的层次结构中,每个新的子类都使类变得更加明确和具体。如果从一个子类向父类追…

Unty 崩溃问题(Burst 1.8.2)

错误代码: Assertion failed on expression: exception SCRIPTING_NULL UnityEngine.StackTraceUtility:ExtractStackTrace () Unity.Burst.BurstCompiler:SendRawCommandToCompiler (string Unity版本:2021.3.17F1,Burst 1.8.2 表现&…

python安装talib库教程

【talib介绍】 Talib介绍 Talib,全称“Technical Analysis Library”,即技术分析库,是一个广泛应用于金融量化领域的Python库。该库由C语言编写,支持Python调用,为投资者、交易员和数据分析师提供了强大的技术分析工…

酷炫末世意境背景404单页HTML源码

源码介绍 酷炫末世意境背景404单页HTML源码,背景充满着破坏一切的意境,彷佛末世的到来,可以做网站错误页或者丢失页面,将下面的代码放到空白的HTML里面,然后上传到服务器里面,设置好重定向即可 效果预览 …

餐边柜不踩坑的尺寸和做法

大家问餐边柜怎么做好看不踩坑      十做十不做,有尺寸和总结      1,柜子的深度30和35cm就行,低于30太窄放不了东西      高于35餐厅会显得窄,      2,镂空的地方一定要做背板,      3,柜子不用装修反弹器,也不做拉手,一个容易坏,一个不好看      建议…

论文学习——基于自适应选择的动态多目标进化优化有效响应策略

论文题目:Effective response strategies based on adaptive selection for dynamic multi-objective evolutionary optimization 基于自适应选择的动态多目标进化优化有效响应策略(Xiaoli Li a,b,c, Anran Cao a,∗, Kang Wang a)Applied S…

零基础STM32单片机编程入门(十五) DHT11温湿度传感器模块实战含源码

文章目录 一.概要二.DHT11主要性能参数三.DHT11温度传感器内部框图四.DTH11模块原理图五.DHT11模块跟单片机板子接线和通讯时序1.单片机跟DHT11模块连接示意图2.单片机跟DHT11模块通讯流程与时序 六.STM32单片机DHT11温度传感器实验七.CubeMX工程源代码下载八.小结 一.概要 DH…

App Inventor 2 天气预报App开发 - 第三方API接入的通用方法(2)

本文来自AppInventor2中文网(www.fun123.cn)参考文档,调用第三方天气接口获取天气JSON数据,解析并展示在App上。 App效果图,展示未来7日的天气预报,包括日期、天气图示和温度: App原理介绍 通…

Linux/Windows 系统分区

1. Windows 系统 1.1 系统分区 系统分区也叫做磁盘分区,即分盘; 举个例子,好比家里有一个大柜子,把衣服,鞋子,袜子都放在里面,由于没有隔断,找的时候非常麻烦,找是能找…

C++ Primer:3.2 标准库类型string

其他章节&#xff1a;C Primer 学习心得 标准库类型string表示可变长的字符序列&#xff0c;使用string类型必须首先头文件&#xff0c;string定义在命名空间std中 #include <string> using std::string定义和初始化string对象 初始化类的对象是由类本身决定的&#x…

借力Jersey,铸就卓越RESTful API体验

目录 maven 创建 jersey 项目 运行 支持返回 json 数据对象 1. 引言 在当今数字化时代&#xff0c;API&#xff08;应用程序编程接口&#xff09;已成为连接不同软件系统和服务的桥梁。RESTful API以其简洁、轻量级和易于理解的特点&#xff0c;成为了API设计的首选标准。本…

Hive函数之-posexplode()

1、概念描述&#xff1a; posexplode() 是一个内建函数&#xff0c;用于处理数组数据&#xff0c;并将数组的每个元素及其索引&#xff08;位置&#xff09;转换为两列的表格式数据。posexplode() 函数对于处理需要元素位置信息的数组特别有用。pos就是postion的缩写&#xff…

Windows双网卡上网原理以及配置方法

目录 1. 背景 2. IP路由原理 3. windows双网卡上网解决方案 3.1. 基础配置解决方案 3.2. 高阶配置解决方案 1. 背景 在windwos上使用多网卡在工作和生活中是一个常见的操作&#xff0c;比如为了获取内部消息将有线连接到内部局域网中&#xff0c;为而了访问外网又将电脑的…

华为云GaussDB部署指南:主备架构的常见问题与解决方案

文章目录 华为云GaussDB部署指南&#xff1a;主备架构的常见问题与解决方案背景介绍部署步骤1.修改主机名2.软件安装检查3.禁用交换内存4.创建数据目录并挂载5.配置NTP时钟同步6.添加资源限制参数7.修改网卡的MTU8.上传安装工具包9.编辑集群配置文件10.修改集群安装模板11.安装…

木舟0基础学习Java的第二十天(线程,实现,匿名有名,休眠,守护,加入,设计,计时器,通信)

多线程 并发执行的技术 并发和并行 并发&#xff1a;同一时间 有多个指令 在单个CPU上 交替执行 并行&#xff1a;同一时间 有多个指令 在多个CPU上 执行 进程和线程 进程&#xff1a;独立运行 任何进程 都可以同其他进程一起 并发执行 线程&#xff1a;是进程中的单个顺…

【.NET全栈】ASP.NET开发Web应用——站点导航技术

文章目录 前言一、站点地图1、定义站点地图文件2、使用SiteMapPath控件3、SiteMap类4、URL地址映射 二、TreeView控件1、使用TreeView控件2、以编程的方式添加节点3、使用TreeView控件导航4、绑定到XML文件5、按需加载节点6、带复选框的TreeView控件 三、Menu控件1、使用Menu控…

Hutool-Guava

目录 一、Guava 二、Hutool 三、区别与联系 四、使用场景 五、Guava工具类 1.集合工具类 2.字符串工具类 3.并发工具类 六、Hutool 1.字符串工具类 2.文件工具类 Hutool 和 Guava 都是 Java 开发中非常实用的工具库&#xff0c;它们提供了许多方便的工具类和方法&am…