2 回答
TA贡献1865条经验 获得超7个赞
你必须使用SpEL(弹簧表达式语言),这是一个非常强大的工具:)
比你可以做这样的事情:
@Value("#{${my.param} > PARAM1_MIN || ${my.param} < PARAM1_MAX ? ${my.param} : DEFAULT_PARAM1"})
private int param;
或者可能更具可读性:
@Value("#{checker.inRange(${my.param})}")
private int param;
使用组件:
@Component("checker")
private class PropertyChecker {
public int inRange(int param) {
......
}
}
一个不错的教程在这里:https://www.baeldung.com/spring-expression-language 或:https://www.baeldung.com/spring-value-annotation
TA贡献2037条经验 获得超6个赞
可以使用一些验证约束,例如 、和包 Java 验证 API 中的许多其他约束@Max
@Min
@NotEmpty
请参阅春季文档。
下面是一个示例:
public class User {
@NotNull(message = "Name cannot be null")
private String name;
@AssertTrue
private boolean working;
@Size(min = 10, max = 200, message
= "About Me must be between 10 and 200 characters")
private String aboutMe;
@Min(value = 18, message = "Age should not be less than 18")
@Max(value = 150, message = "Age should not be greater than 150")
private int age;
@Email(message = "Email should be valid")
private String email;
// standard setters and getters
}
添加回答
举报