如何将 web.xml 参数传递给注释(休眠验证器)?

how to pass web.xml parameters to annotations (hibernate validator )?

我想将 web.xml 上的上下文参数传递给 Java Bean 中的休眠注释,例如:

web.xml :

<context-param>
 <param-name>limit</param-name>
 <param-value>5</param-value>
</context-param>

Java豆子:

@Length(min=0, max=limit )
private String text;

这可能吗?

简而言之,这是不可能的。约束注解是静态的,不能动态改变。

在最好的情况下,您可以尝试编写自定义约束。您仍然不能在约束中使用变量,但在 ConstraintValidator 实现中,您可以通过注入或通过 ThreadLocal 访问一些动态状态。当然,现在不可能再通过查看域模型来推迟确切的约束。

如果您需要根据使用模型的应用程序更改约束,我想我更愿意使用 Bean Validation 的 XML 配置。