spring boot使用aop进行入参回参打印和bean参数校验

spring boot使用aop进行入参回参打印和bean参数校验,第1张

由于在项目中controller层频繁用到log打印入参和回参以及入参的DTO校验,存在很多的重复 *** 作。

最近了解到了aop相关的知识,决定写一个切面来替代这些重复 *** 作。

因为我这里是spring boot 项目,所以加入依赖:

创建自定义注解@BeanValidated:

创建切面处理类:

使用@Slf4j注解需要导入lombok注解,以及在idea中开启lombok,或者也可以自己获取logger

运用切面还可以完成权限验证等功能,大家可以自己试着写一下。

链接: >

拦截器继承HandlerInterceptorAdapter类,并重写了preHandle();方法,在此方法中获得了加密后的参数字符串,解密后,怎么将解密后的参数重新设置到>    拦截器

java里的拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行,同时也提供了一种可以提取action中可重用部分的方式。在AOP(Aspect-Oriented Programming)中拦截器用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些 *** 作。

C#的AOP实现主要是参考了这篇 博客 ,并对实现过程中遇到的问题进行分析和修改)。

定义一个AOP上下文特性,用于标注需要支持AOP方法的类,通过 ContextAttribute, IContributeObjectSink 来获取类的上下文环境,这是通过 Attribute 拦截参数和获取返回值的前提。

实现一个继承自 ContextBoundObject 的类,并标注 [AOPContext] 特性,两者配合,使得这个类下的方法可以被成功拦截。需要支持AOP的类,继承这个类即可。

用于标注需要拦截参数的方法,和指出对应的处理函数。

TestMethod1为将被拦截处理的方法,before方法和after方法可抽取到其他类中。

被拦截的类需要继承AOPContext,并且该类中调用的第一个方法会被拦截,如果存在嵌套方法,不会拦截到第二个方法。

目前的实现无法改值参,可以考虑将数值类型封装到model中,传model对象。

以上就是关于spring boot使用aop进行入参回参打印和bean参数校验全部的内容,包括:spring boot使用aop进行入参回参打印和bean参数校验、Spring AOP implements MethodInterceptor 要怎么传参数进来、Spring拦截器拦截请求,得到HttpServletRequest对象,获得加密的参数,怎样重新设置参数值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9680046.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存