java - 是否有使用带注释的方法参数启用 JSR 303 Bean 验证的标准方法

标签 java spring aop bean-validation hibernate-validator

我一直在四处寻找一段时间,但没有运气。我不使用 Spring MVC 但仍想使用 @javax.validation.Valid启用方法参数的验证。举个例子

public class EventServiceImpl implements IEventService {
    @Override
    public void invite(@Valid Event event, @Valid User user) { ... }
}

使用 MVC,为 @Controller 启用此功能用简单的 <mvc:annotation-driven/> 注释的 bean (见 5.7.4.3 Configuring a JSR-303 Validator for use by Spring MVC)。

使用 AOP 应该很简单。不过,我怀疑有一些标准的方法可以做到这一点。因此,问题是:非 MVC 应用程序和非 Controller bean 是否有类似的事情来启用带注释的 bean 的输入验证?

最佳答案

方法级验证不是 Bean 验证规范 (JSR 303) 的一部分。方法级别验证是在 appendix C 中添加的规范中的建议。 .

Hibernate Validator 4.2(测试版已经出来)正在实现这个建议,并允许在方法参数和返回值上放置 JSR 303 注释。当然你仍然需要一些 Spring 胶水代码,但这应该不会太难。

此外,Bean Validation 1.1 将在规范中正式添加方法级别的验证(不仅仅是作为附录/建议)。另见 http://beanvalidation.org/

关于java - 是否有使用带注释的方法参数启用 JSR 303 Bean 验证的标准方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4900077/

相关文章:

java - JNI如何管理C++代码中的静态变量?

java - 将一个 DAO 的方法用于另一个

spring - org.hibernate.HibernateException : No CurrentSessionContext configured

c++ - Qt 中的面向切面编程

java - 通过 Hibernate 持久化枚举时出现 ClassCastException

java - Intellij 生成静态最终字段

java - 获取 JSTL 页面表上的 JSON 数据

java - Spring Data自定义方法错误: org. springframework.data.mapping.PropertyReferenceException:找不到类型的属性xxx

java - Spring 将属性文件中的值读取到 @SpringBootApplication 类中

java - 重构方面的异常?