gpt4 book ai didi

java - 非法参数异常 : Invalid boolean value when injecting property to boolean in Spring

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:57:28 27 4
gpt4 key购买 nike

在 Spring Boot 中,我尝试从已设置 (enabled=true) 的环境属性向实例变量注入(inject)一个 boolean 值。

@Value("${enabled}")
private boolean enabled;

但是由于某些原因和报告,Spring 无法解决这个问题:

Caused by: java.lang.IllegalArgumentException: Invalid boolean value [${enabled}]

它似乎没有用属性值替换表达式 ${enabled}

需要设置什么?为什么默认情况下不起作用?

最佳答案

对于 Spring-Boot,您可以在这里找到很好的引用资料: http://www.baeldung.com/properties-with-spring

对于给定的 someprops.properites 文件:

somevalue:true

这是失败版本:

@ContextConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@TestPropertySource( "/someprops.properties" )
public class FailingNg {

@Configuration
public static class Config {
}

@Value("${somevalue}")
private Boolean somevalue;

// Fails with context initializatoin java.lang.IllegalArgumentException: Invalid boolean value [${somevalue}]
@Test
public void test1() {
System.out.println("somevalue: " + somevalue);
}
}

这是工作版本:

@ContextConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
public class WorkingOk {

@Configuration
public static class Config {
@Bean
public static PropertyPlaceholderConfigurer properties() {
PropertyPlaceholderConfigurer ppc = new PropertyPlaceholderConfigurer();
Resource[] resources = new ClassPathResource[] {
new ClassPathResource( "someprops.properties" )
};
ppc.setLocations( resources );
ppc.setIgnoreUnresolvablePlaceholders( true );
return ppc;
}
}

@Value("${somevalue}")
private Boolean somevalue;

@Test
public void test1() {
System.out.println("somevalue: " + somevalue);
}
}

关于java - 非法参数异常 : Invalid boolean value when injecting property to boolean in Spring,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32868064/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com