我有一些形式为“X是有效的IFF服务Y返回Z”的业务验证逻辑,其中X和Z在编译时已知,并且Y的位置是从Spring配置加载的文件。运行时配置Hibernate验证注释
我想使用JSR-303基于注解的验证,与Spring配置在一起,所以我可以写类似下面的代码:
自定义类级别约束注释:
@MyValidation
public class X { .... }
ConstraintValidator为@MyValidation:
public class MyValidationValidator implements ConstraintValidator<MyValidation, X> {
private MyService service;
public MyService getService() { return service; }
public void setService(MyService serv) { this.service = serv; }
//Validation Logic...
}
Spring配置:
<bean id="ServiceY" class="...">
...
</bean>
<bean id="mvv" class="MyValidationValidator">
<property name="service" value="ServiceY" />
</bean>
但我试图以这种方式结合这些方式失败了,因为验证器的属性没有设置。
现在,我使用Spring AOP拦截器作为解决方法,但这在我看来并不理想。
这里的其他问题之一,让我想到使用属性文件/属性,但不会要求我重复服务的配置?
另一个提到以编程方式定义约束映射,但如果我这样做,我可能会更好我的解决方法。
任何关于如何做动态配置的线索?