当前位置:   article > 正文

【项目问题解决】 : Failed to convert value of type ‘java.lang.String‘ to required type ‘int‘;_failed to convert value of type 'java.lang.string'

failed to convert value of type 'java.lang.string' to required type 'int'; n

主图==========

目录

【项目问题解决】: Failed to convert value of type 'java.lang.String' to required type 'int'; nested exception is java.lang.NumberFormatException: For input string: ""


文章所属专区 项目问题解决


1.问题描述

使用@Value注解读取配置,配置整形变量为空

Failed to convert value of type ‘java.lang.String’ to required type ‘int’; nested exception is java.lang.NumberFormatException: For input string: “”

Error creating bean with name ‘singleQueryService’: Unsatisfied dependency expressed through field ‘electronicMaterialService’; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘electronicMaterialService’: Unsatisfied dependency expressed through field ‘outsidePort’; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert value of type ‘java.lang.String’ to required type ‘int’; nested exception is java.lang.NumberFormatException: For input string: “”

2.问题原因

使用@Value注解读取配置,配置整形变量为空,默认取了一个空字符串导致异常

3.解决方案

  1. 检查配置文件:首先,检查你的配置文件,确保outsidePort的配置值存在且为一个有效的整数值。确保没有将配置值设置为空字符串。

  2. 检查字段类型:确认outsidePort字段的类型是int,而不是String。在electronicMaterialService类中,确保outsidePort字段的类型与配置文件中的类型一致。

  3. 使用默认值或可选类型:如果你的配置值可能为空,你可以考虑使用可选类型(如Integer)或设置一个默认值作为备选方案。在electronicMaterialService类中,你可以将outsidePort字段的类型设置为Integer,并在需要使用该字段时进行空值检查。

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class ElectronicMaterialService {
    @Value("${outside.port:0}")
    private Integer outsidePort;

    // Getter and Setter
    
    public Integer getOutsidePort() {
        return outsidePort;
    }

    public void setOutsidePort(Integer outsidePort) {
        this.outsidePort = outsidePort;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

4.其他问题

在配置中配置了空配置项,而变量是整形,会导致 For input string: " "问题
在这里插入图片描述
整形变量配置为配置项,如果没有数据可以直接用:1设置默认值,但是配置文件里对应的配置项不可为空

5.参考

Spring boot @Value 获取值为 null
深度解析@Value注解,你真的彻底了解过吗?
Spring-外部配置的值是如何通过@Value注解获取的?

给个三连吧 谢谢谢谢谢谢了
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/532715
推荐阅读
相关标签
  

闽ICP备14008679号