引言
使用SpringMVC作为Controller层进行Web开发时,经常会需要对Controller中的方法进行参数检查。本来SpringMVC自带@Valid和@Validated两个注解可用来检查参数,但只能检查参数是bean的情况,对于参数是String、Long等Java自带类型的就不适用了(但是还可以用@NotNull、@NotBlank、@NotEmpty等),而且有时候这两个注解又突然失效了(没有仔细去调查过原因)。对此,其实我们自己也可以利用Spring的AOP和自定义注解,自己写一个参数校验的功能。
代码示例
注意:本节代码只是一个演示,给出一个可行的思路,并非完整的解决方案。
本项目是一个简单Web项目,使用到了:Spring、SpringMVC、Maven、JDK1.8
项目结构:
自定义注解:
ValidParam.java:
1 | package com.lzumetal.ssm.paramcheck.annotation; |
NotNull.java:
1 | package com.lzumetal.ssm.paramcheck.annotation; |
NotEmpty.java:
1 | package com.lzumetal.ssm.paramcheck.annotation; |
切面类
ParamCheckAspect.java:
1 | package com.lzumetal.ssm.paramcheck.aspect; |
参数JavaBean
StudentParam.java:
1 | package com.lzumetal.ssm.paramcheck.requestParam; |
验证参数校验的Controller
TestController.java:
1 | package com.lzumetal.ssm.paramcheck.controller; |
本节示例代码已上传至GitHub:https://github.com/liaosilzu2007/ssm-parent.git