我有一个复合 bean,其中包括内部 bean,其中一些内部 bean 也有内部 bean。这个复合 bean 总共有 200 多个属性(这个 bean 的属性 + 内部 bean 的属性)。我正在使用JSR 303来验证用户输入。我的要求建议进行跨字段 bean 验证。
关于相同的内容,我浏览了一些博客和建议,例如http://dwuysan.wordpress.com/2012/03/20/cross-field-validation-using-bean-validation-jsr-303/。类似的解释可以在这里找到:Cross field validation with Hibernate Validator (JSR 303)。
两者都建议使用相同的方法来定义跨字段验证的类级别约束。他们的方法是使用BeanUtils.getProperty()方法,该方法又在运行时使用Java 反射,同时执行 bean 验证。
我想知道使用在运行时评估(性能下降)的反射来定义 JSR 303 corss-field 约束或者通过自定义方法进行其他验证策略(如 Spring 验证或服务层验证)是否很好?