在应用程序启动期间验证@ Value-annotated字段

时间:2017-06-06 14:44:48

标签: java spring validation hibernate-validator

如何在应用程序启动期间检查属性文件中的值是否符合我的期望?直接注释字段不起作用。 我使用的是春季靴子1.5.3.RELEASE,春季4.3.8.RELEASE

服务:

@Service
@Validated
public class ConfigService {
    @URL
    @Value("${checkout.url}")
    private String checkoutUrl;
    @Size(max = 26)
    @Value("${checkout.payment-method}")
    private String paymentMethod;
}

属性文件(application.properties):

checkout.url=not-a-url-at-all
checkout.payment-method=CreditCardButMuchTooLongToQualifyForSizeValidator

1 个答案:

答案 0 :(得分:1)

您可以在类中使用此getter方法样式来验证字符串长度:

@Size(min = Number, max = Number)
public String getField() {
    return field;
}

和验证号码:

@Max(Number) or @Min(Number) 

当Number等于int值

如果字段没有此限制,则会抛出java.lang.IllegalStateException

如果你没有,请不要忘记将此依赖项添加到你的pom中:

<dependency>
    <groupId>org.glassfish.web</groupId>
    <artifactId>el-impl</artifactId>
    <version>2.2</version>
</dependency>