有一个用@Service注释的类,尝试使用值读取属性,该值始终为零
@Service
public class custom implements Conditional
{
@Value("${test.property}")
private boolean properttyValue;
}
#test.properties
test.property= true
如果我在@Value中提供任何不存在的值,则会引发错误,表示已加载属性,
有什么想法吗?
答案 0 :(得分:0)
这是因为test.properties不在类路径中。如果您使用的是Spring Boot,请使用-Dspring.config.location
指定外部配置。您可以通过以下方式进行操作
-Dspring.config.location=your/config/dir/
-Dspring.config.location=classpath:pro1.properties,classpath:prop2.properties
如果您不使用Spring Boot,可以使用
@Configuration
@PropertySource("classpath:test.properties")
public class PropertiesWithJavaConfig {
//...
}
@Configuration
@PropertySource({
"classpath:test.properties"
})
public class PropertiesWithJavaConfig {
//...
}
对于外部文件,可以使用“ file:/”代替类路径,例如file:./,file:./config/