java - Spring @Value 未正确解析

标签 java spring spring-boot spring-annotations

我有一个依赖项 jar,其在 yaml 中配置的值如下:

app:
  settings:
    value1 : true

Java代码是

public class LoadConfig {

    @Value("${app.settings.value1}")
    private Boolean value1;
}

部署 Spring Boot 应用程序时,在运行时,未解析依赖项 jar 值,并出现以下问题。

org.springframework.beans.factory.UnsatisfiedDependencyException: 
    Error creating bean with name 'LoadConfig':
    Unsatisfied dependency expressed through field 'value1'; nested exception is 
    org.springframework.beans.TypeMismatchException:**Failed to convert value of type 'java.lang.String' to required type 'java.lang.Boolean'**; nested 
    exception is java.lang.IllegalArgumentException: Invalid boolean value [**${app.settings.value1}**].

问题不是值,而是路径(app.settings.value1)被转换为 boolean 值并引发错误。

maven项目结构为

MyJar --> app.jar
    |-> dependency.jar 

最佳答案

基于this你可以尝试:

@Value("#{new Boolean('${app.settings.value1}')}")
private Boolean value1; 

但真正的问题在这里: 异常是java.lang.IllegalArgumentException:无效的 boolean 值[**${app.settings.value1}**]。它传递的不是值而是标签,标签不能被解析为 boolean 值。

关于java - Spring @Value 未正确解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59451460/

相关文章:

java - Spring 3.1 Controller 不接受 ajax post

java - Android 字符串格式不起作用

spring - 使用@Transactional(readOnly = true) 有什么好处?

java - Spring Boot 命令行属性不覆盖 application.properties 中定义的属性

java - Dockerfile 添加命令无法找到目标文件夹

java - Spring Maven 从资源文件夹中读取

java - 如何解决 "Connection reset by peer: socket write error"?

database - 连接数据库的有效方式(按性能)

java - 来自模拟 bean 的方法无法正常工作

java - 处理 Kafka Broker 宕机时的故障