如何使用相同的表单DTO,具有不同的验证注释?如何避免双重代码?

时间:2015-03-03 15:05:10

标签: java spring spring-mvc design-patterns

编写DTO并遵循不同的经过验证的注释,而不使用我的代码,这是最佳做法? 下面附上一个简单的例子,我想避免:

public class AddressForm1 {

    @NotEmpty
    private String address;

    @NotNull
    @Max(23)
    @Min(30)
    private BigDecimal lng;

    // getters & setters
}

public class AddressForm2 {

    // removed annotation, empty value permitted
    private String address;

    @NotNull
    @Max(43)
    @Min(50)
    private BigDecimal lng;

    //getters & setters
}

2 个答案:

答案 0 :(得分:1)

您可以使用验证组,并对约束进行分组。然后使用 @Validated 注释确定您应用哪组约束,并指定适当的组

检查http://www.javacodegeeks.com/2014/08/validation-groups-in-spring-mvc.html

中的示例

答案 1 :(得分:1)

您可以使用组,并仅在需要时验证某些注释,请检查此项 Group Hibernate Doc