Spring依赖注入之setter注入与构造器注入以及applicationContext.xml配置文件特殊值处理

依赖注入之setter注入

在管理bean对象的组件的时候同时给他赋值,就是setter注入,通过setter注入,可以将某些依赖项标记为可选的,因为它们不是在构造对象时立即需要的。这种方式可以减少构造函数的参数数量,使得类的构造函数更加简洁。

注:既然是setter注入,则对象的属性必须是有setter方法的,否则会报如下错误:

配置文件里面的name属性的值是由getXxx,setXxx方法定义的,和成员变量是无关的

依赖注入之构造器注入

构造器注入器要求实体类对象必须有满参构造器和空参构造器,并且在注入的时候,满参构造器里的全部都要注入,否则会报参数匹配异常。

特殊值处理

为什么Integer类型也可以用字符串注入数据?

Spring会在后台使用适当的转换器将字符串值转换为目标数据类型。对于基本数据类型和包装类,Spring提供了默认的转换器,可以将字符串转换为对应的数据类型。因此,尽管你提供的是一个字符串,Spring会自动将其转换为Integer类型并成功注入到对应的属性中。

在xml有一些特殊的符号不能使用,要进行转义或者处理

使用xml实体来表示

使用CDATA节

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

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

相关文章

天津大数据培训班推荐,数据分析过程的常见错误

大数据”是近年来IT行业的热词,目前已经广泛应用在各个行业。大数据,又称海量信息,特点是数据量大、种类多、实时性强、数据蕴藏的价值大。大数据是对大量、动态、能持续的数据,通过运用分析、挖掘和整理,实现数据信息…

【dpdk】Getting Started Guide for Linux DPDK

Getting Started Guide for Linux — Data Plane Development Kit 23.11.0 documentation (dpdk.org) DPDK官网 文章目录 1.dpdk build with isa-l2.System Requirements3.Running DPDK Applications3.1. dpdk-hugepages Application3.1.1. Running the Application3.1.2. Opt…

生产力工具|卸载并重装Anaconda3

一、Anaconda3卸载 (一)官方方案一(Uninstall-Anaconda3-不能删除配置文件) 官方推荐的方案是两种,一种是直接在Anaconda的安装路径下,双击: (可以在搜索栏或者使用everything里面搜…

Python 列表定义与一些常用属性和方法

一、定义: 列表是一种有序、可变的容器,可以包含任意类型的元素。定义一个列表使用的是方括号([]),列表中的元素之间用逗号分隔。 以下是几种常见的列表定义方式: 空列表: my_list []包含元素…

Windows10上通过MSYS2编译FFmpeg 6.1.1源码操作步骤

1.从github上clone代码,并切换到n6.1.1版本:clone到D:\DownLoad目录下 git clone https://github.com/FFmpeg/FFmpeg.git git checkout n6.1.1 2.安装MSYS2并编译FFmpeg源码: (1).从https://www.msys2.org/ 下载msys2-x86_64-20240113.exe &#…

超优秀的三维模型轻量化、格式转换、可视化部署平台!

1、基于 HTML5 和 WebGL 技术,可在主流浏览器上进行快速浏览和调试,支持PC端和移动端 2、自主研发 AMRT 展示框架和9大核心技术,支持3D模型全网多端流畅展示与交互 3、提供格式转换、减面展UV、烘焙等多项单模型和倾斜摄影模型轻量化服务 4、…

Java实现对系统CPU、内存占用率的控制

背景:由于使用的业主的云资源,由于使用率低,会不持续的缩减服务器配置。为了避免后续由于新业务上线,需要更多资源的时候,无法再次获得资源(回收容易,申请难)。 问题:怎…

Git学习笔记(第9章):国内代码托管中心Gitee

目录 9.1 简介 9.1.1 Gitee概述 9.1.2 Gitee帐号注册和登录 9.2 VSCode登录Gitee账号 9.3 创建远程库 9.4 本地库推送到远程库(push) 9.5 导入GitHub项目 9.6 删除远程库 9.1 简介 9.1.1 Gitee概述 众所周知,GitHub服务器在国外,使用GitHub作为…

3.1集合-Set+集合-list

一、数据结构 1.1什么是数据结构 数据结构就是用来装数据以及数据与之间关系的一种集合,如何把相关联的数据存储到计算机,为后续的分析提供有效的数据源,是数据结构产生的由来。数据结构就是计算机存储、组织数据的方式。好的数据结构&…

数据结构·单链表

不可否认的是,前几节我们讲解的顺序表存在一下几点问题: 1. 中间、头部的插入和删除,需要移动一整串数据,时间复杂度O(N) 2. 增容需要申请新空间,拷贝数据,释放旧空间。会有不小的消耗 3. 增容一般是2倍的增…

01、领域驱动设计:微服务设计为什么要选择DDD总结

目录 1、前言 2、软件架构模式的演进 3、微服务设计和拆分的困境 4、为什么 DDD适合微服务 5、DDD与微服务的关系 6、总结 1、前言 我们知道,微服务设计过程中往往会面临边界如何划定的问题,不同的人会根据自己对微服务的理 解而拆分出不同的微服…

Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载

目录 搭建 TFTP 服务文件下载更多内容 TFTP(Trivial File Transfer Protocol,简单文件传输协议)是 TCP/IP 协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务,端口号…

解决TortoiseGit软件Git Show log时显示Too many files to display的问题

1 问题描述 有时代码提交修改的文件比较多,当查看log时无法显示出来修改的文件列表,如下所示: 2 解决方法 将LogTooManyItemsThreshold尽可能配置得大一些。 三 参考资料 https://gitlab.com/tortoisegit/tortoisegit/-/issues/3878

WPF中StatusBar控件显示状态栏信息

在 WPF 中,StatusBar 控件是用于显示状态栏信息的控件。它通常位于窗口底部,可以包含多个 StatusBarItem,每个 StatusBarItem 可以显示不同的状态信息。 StatusBar 控件提供了以下功能: 显示多个状态栏项:你可以在 S…

C++补充篇- C++11 及其它特性

目录 explicit 关键字 左值和右值的概念 函数返回值当引用 C11 新增容器 - array C的类型转换 static_cast reinterpret_cast dynamic_cast const_cast C智能指针 auto_ptr 使用详解 (C98) unique_ptr 使用详解 (C11) auto_ptr的弊端 unique_ptr严谨auto_ptr的弊端 unique_…

Android wifi dut首次连接酒店wifi,不会弹出登录界面

问题单: 【预置条件】 5G智能省电关闭,WiFi关闭,5G智能切换关闭,双卡关闭5G 卡1制式:移动注册4G VOLTE网络(主卡)卡2制式:联通注册4G VOLTE网络(副卡) 测试地点:长堤大马路 【复现步骤】1.dut连接酒店wifi 2.观察dut 【实际结果】1.dut首次连接酒店wifi,不会弹出登…

2024-01-24 思考-复盘与次日规划

摘要: 对经历的事情进行复盘,对第二天进行规划。 商业分析: 商业合作的目的一定是为了盈利, 不盈利的合作就是扯淡合作的必要条件,是基于双方的资源的互补但是能商业合作的一个很大的前提,是信任一件事情很多人都能做,但是为什么…

JVM实战(30)——模拟堆内存溢出

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 学习必须往深处挖&…

ME51N屏幕增强——添加历史订单价格字段

参考: 资料:SAP所有模块用户出口(User Exits) _coopa003-CSDN博客 SAP ABAP常用增强记录文档_sap自动过账增强-CSDN博客 https://www.cnblogs.com/zyhcs/p/15759434.html 需求: 增加给OA传输接口的字段。 采购申请增加历史价格显示。 已经…

Android 水印效果

Android 水印效果 本文主要介绍下android 中水印的实现效果. 实现的方式有多种,就不一一赘述了, 本文就是通过自定义drawable来实现水印. 不多说,直接上代码吧: import android.content.Context; import android.content.res.Resources; import android.graphics.Canvas; i…