问题描述
我正在构建一个 Spring 应用程序项目,该项目使用 Spring DI(构造函数注入)来注入对象。 有一个学生类 -
public class Student {
private int id;
并拥有构造函数
public Student(int id)
{this.id = id; }
我像这样使用构造函数注入来注入对象---
<constructor-arg name="id" value="1"/>
现在,这里的值 (1) 作为 String 传递,但构造函数接受 int 。 我无法弄清楚,Spring 是如何做到的。是简单的类型转换还是其他什么?
解决方法
Spring 做了这个工作,下面是 Spring 文档中的注释。
以下是 spring 文档中的文本:
4.作为值的每个属性或构造函数参数必须能够从它指定的任何格式转换为该属性或构造函数参数的实际类型。默认情况下,Spring 可以将字符串格式提供的值转换为所有内置类型,例如 int、long、String、boolean 等。
,Spring 做到了这一点。下面的注释来自spring documentation。
作为值的每个属性或构造函数参数必须能够从它指定的任何格式转换为该属性或构造函数参数的实际类型。默认情况下,Spring 可以将字符串格式提供的值转换为所有内置类型,例如 int、long、String、boolean 等。