[英]Int from application.properties
在 application.properties 中:
comment.length=3000
现在我想使用这个常量:
@Entity(name="clients_client")
public class Client {
@Column(length="${comment.length}")
private String comment;
}
编译时,我收到此错误:
java:不兼容的类型:java.lang.String 无法转换为 int
这非常接近于如何从属性文件导入值并在注释中使用它? ,但我认为这些问题之间存在细微差别。
您正在尝试使用${comment.length}
引用@Column
注释中的属性。 真正发生的事情是您尝试将String
"${comment.length}"
分配给注释的length
属性。 这当然是不允许的,它需要一个int
。
Java 或 Spring 不能“神奇地”用${propertyName}
替换${propertyName}
。 然而,Spring 有自己的注入属性值的方式:
@Value("${value.from.file}")
private String valueFromFile;
即使您的实体是 Spring bean(例如用@Component
注释),并且您用@Value
注入了属性,它也不能在注释中使用。 这是因为注释中的值需要保持不变,并且在对近重复问题的公认答案中进行了更详细的解释。
现在我想使用这个常量:
它根本不是一个常数,它是在运行时确定的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.