Spring非Boot环境MockMvc测试@Valid校验失效问题解决
解决Spring非Boot环境下MockMvc测试时Hibernate-Validator校验失效问题
问题场景
使用Spring框架开发Rest API,通过Hibernate-Validator的@Valid注解实现服务端请求参数校验。本地服务器运行时校验功能正常,但使用MockMvc进行测试时,校验完全不生效,调试发现测试环境中Validator未被加载。测试类使用了@WebAppConfiguration、@RunWith(SpringJUnit4ClassRunner.class)、@ContextConfiguration注解,且未使用Spring Boot。
解决方案
- 更新Spring、Hibernate-Validator等相关依赖至最新稳定版本。
- 向项目的Maven依赖中添加以下内容:
第一部分依赖
<dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> <scope>provided</scope> </dependency>
第二部分EL相关依赖
<dependency> <groupId>javax.el</groupId> <artifactId>javax.el-api</artifactId> <version>3.0.0</version> </dependency> <dependency> <groupId>org.glassfish</groupId> <artifactId>javax.el</artifactId> <version>3.0.0</version> </dependency>
内容的提问来源于stack exchange,提问作者BlueBear
相关产品推荐
相关产品推荐

