一般用validator时,会在controller上的方法加BindingResult,还要在方法上加注解,又臭又长。
我这里的思路是把validator和spring mvc分开,在controller方法上加注解,然后用aop切入这个controller方法,获取需要验证的对象,然后进行验证及其他操作。
这里只验证第一个参数,要验证其他参数的请自行修改代码,用注解传入参数下标。
项目结构:
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>validate</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>validate</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8&