我有一个依赖项 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/