我的spring bean中有很多@Value
属性,大多数时候只有第一个属性在属性文件中设置,其他属性应该从第一个属性中获取它们的值,如果没有被覆盖的话,它们应该有合理的默认值。
不幸的是,这只适用于一个级别。如果我试图引用一个属性与2级它找不到它了。
@Component("pvcConfiguration")
public class PvcConfiguration {
@Value(value = "${com.abc.pvc.path}")
private Path path;
// one level works fine
@Value(value = "${com.abc.pvc.ftp.path:${com.abc.pvc.path}/ftp}")
private Path ftpPath;
// two levels do not work
@Value(value = "${com.abc.pvc.etc.path:${com.abc.pvc.ftp.path}/etc}")
private Path etcPath;
}
错误信息:
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'com.abc.pvc.ftpPath' in value "com.abc.pvc.etcPath:${ch.sbb.infop.pvc.ftp.path}/etc"
有什么办法让它工作吗?
1条答案
按热度按时间7cjasjjr1#
当你设置ftpPath时,你没有设置占位符com.abc.vc.ftp.path
导向器https://www.baeldung.com/spring-value-annotation