【问题标题】:Jersey bean validation ParameterNameProviderJersey bean 验证 ParameterNameProvider
【发布时间】:2014-04-29 07:30:03
【问题描述】:

我正在阅读有关 bean validation 的 Jersey 文档。 ParameterNameProvider 示例展示了如何为方法定义参数名称。但是,对于显然无法扩展的每种方法,似乎都必须执行此操作。这个例子基本上没有用。

有没有更聪明的方法来做到这一点? Jersey 不能从 @QueryParam@PathParam 注释中推断出名称吗?

【问题讨论】:

    标签: java jersey jax-rs


    【解决方案1】:

    在此处查看我的问题中的答案。它应该完全符合您的要求。

    Can I change the property path in a ConstraintValidator for Method arguments?

    如果您复制我的代码并通过调试器运行它,您会看到它只针对使用它的每个方法评估一次。然后在您的应用程序正常运行期间,将不需要再次解析名称。

    【讨论】:

    • 看起来不错。我会在星期一试一试并接受。谢谢。
    • 我有一个问题:名称参数是缓存在某处还是每个异常都会调用该方法?
    • 第一次加载类时缓存。
    • 实际上我测试过它并没有。我只是打印了一个带有方法名称的语句,它被调用的次数与端点抛出验证异常的次数一样多。不过,使用 Guava 的 Multimap 添加缓存很容易。
    • 不知道是不是因为MetaDataProvider的特殊实现?
    猜你喜欢
    • 2015-12-29
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 2021-08-05
    • 1970-01-01
    • 2015-02-07
    • 1970-01-01
    相关资源
    最近更新 更多