Springboot项目中@Valid先于@Aspect执行问题
今天新写一个小东西,简单的提供一个接口,保存数据。在controller层使用了@Vaild验证数据完整性
同时,使用aop切面验证请求ip是否合法(配置文件中配置的ip地址)
测试发现,@Valid的验证先于切面执行。这样不符合业务逻辑,应该先验证ip合法性再验证数据完整性。解决方案:
在controller参数中加入BindingResult,使得@Valid的验证结果封装到其中,而后在切面中再进行处理
最后统一异常处理,返回结果,完美解决