【问题标题】:how does a constructor-arg having value as String passed to the Constructor accepting Integer?具有值作为字符串的构造函数参数如何传递给接受整数的构造函数?
【发布时间】:2021-06-06 12:44:18
【问题描述】:

我正在构建一个 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是如何做到的。只是简单的类型转换还是其他?

【问题讨论】:

  • 你在寻找春天ConversionService
  • 是的,我想知道它是如何工作的,以及字符串是如何在内部类型转换为 Int 的。

标签: java spring dependency-injection constructor-injection


【解决方案1】:

Spring 完成这项工作,以下是 Spring 文档中的注释。

以下是 spring 文档中的文本:

4. 作为值的每个属性或构造函数参数必须能够从它指定的任何格式转换为该属性或构造函数参数的实际类型。默认情况下,Spring 可以将字符串格式提供的值转换为所有内置类型,例如 int、long、String、boolean 等。

【讨论】:

    【解决方案2】:

    Spring 就是这样做的。下面的注释来自spring documentation

    作为值的每个属性或构造函数参数必须能够从它指定的任何格式转换为该属性或构造函数参数的实际类型。默认情况下,Spring 可以将字符串格式提供的值转换为所有内置类型,例如 int、long、String、boolean 等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-13
      • 1970-01-01
      • 2023-03-26
      • 2011-09-05
      • 1970-01-01
      • 1970-01-01
      • 2011-06-28
      • 1970-01-01
      相关资源
      最近更新 更多