通过AOP方式拦截对前端传递的参数进行前后空格处理
1. 定义注解此注解代码需要去除前后端空格
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface BeanTrim {
String value() default "";
String[] groups() default {};
}
2. 定义拦截
对方法中含有次注解的请求进行拦截处理,参数处理
@Aspect
@Component
@Slf4j
public class BeanTrimAspect implements Ordered {
@Autowired
private CommonAPI commonAPI;
// 此处为注解所在,根据实际设定
@Before("@annotation(org.xxx.xxx.xxx.xxx.annotion.BeanTrim)")
public void beforeMethod(JoinPoint point){
MethodSignature signature = (MethodSignature) point.getSignature();
Method method = signature.getMethod();
BeanTrim syslog = method.getAnnotation(BeanTrim.class);
Object[] args = point.getArgs();
for (Object arg : args) {
try {
TUtils.trimBeanString(arg);
} catch (Exception e) {
throw new Exception("参数处理异常");
}
}
}
@Override
public int getOrder() {
return 1;
}
}
3. 注解使用
注解使用在方法上面即代表此处需要对参数处理,当User 中属性name 存在前后空格,则可以自动处理,
@PostMapping(value = "/add")
@BeanTrim
public void add(@RequestBody User user) {
System.out.println(user.toString);
}
4. 方法链接:
TUtils.trimBeanString(arg);
去除前端参数字符串前后空格



