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

依赖注入之setter注入

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

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

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

依赖注入之构造器注入

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

特殊值处理

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

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

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

使用xml实体来表示

使用CDATA节

相关推荐
要开心吖ZSH5 分钟前
《Spring 中上下文传递的那些事儿》Part 4:分布式链路追踪 —— Sleuth + Zipkin 实践
java·分布式·spring
桦说编程25 分钟前
深入解析CompletableFuture源码实现
java·性能优化·源码
考虑考虑26 分钟前
Springboot3.4.x中的@Bean使用
spring boot·后端·spring
蓝澈11211 小时前
迪杰斯特拉算法之解决单源最短路径问题
java·数据结构
Kali_071 小时前
使用 Mathematical_Expression 从零开始实现数学题目的作答小游戏【可复制代码】
java·人工智能·免费
rzl021 小时前
java web5(黑马)
java·开发语言·前端
时序数据说1 小时前
为什么时序数据库IoTDB选择Java作为开发语言
java·大数据·开发语言·数据库·物联网·时序数据库·iotdb
guojl2 小时前
深度解读jdk8 HashMap设计与源码
java
guojl2 小时前
深度解读jdk8 ConcurrentHashMap设计与源码
java
爱上语文2 小时前
Redis基础(5):Redis的Java客户端
java·开发语言·数据库·redis·后端