spring 日志管理,springmvc aop实现日志管理

  spring 日志管理,springmvc aop实现日志管理

  第一步引入必要的依赖

  依赖关系groupIdorg.springframework.boot/groupId工件id spring-boot-starter-web/工件id/依赖项依赖关系groupIdorg.springframework.boot/groupId工件id spring-boot-dev工具/工件id范围运行时/范围选项true/选项/依赖项依赖关系groupIdorg.projectlombok/groupId工件id lombok/工件id选项true/选项/相关性依赖关系groupIdorg.springframework.boot/groupId工件id spring-boot-starter-test/工件id scope test/scope/dependency groupIdorg.springframework/groupId工件id spring-AOP/工件id版本5。3 .15/版本/依赖性依赖关系groupidorg。AspectJ/groupId工件Id第二步创建自定义日志注解类

  包com。举例。AOP。日志。注释;导入Java。郎。注释。*;/* * * * @作者zhr_java@163.com * @ date 2022/3/29 20:56 */@ Inherited @ Target({ element type .METHOD })@ Retention(值=保留策略.运行时)@文档化公共@界面日志通知{ }第三步切面设计,扫描上面的注解

  包com。举例。AOP。日志。AOP导入org。AspectJ。郎。proceedingjoinpoint导入org。AspectJ。郎。签名;导入org。AspectJ。郎。注释。周围;导入org。AspectJ。郎。注释。方面;导入org。AspectJ。郎。注释。切入点;导入org。AspectJ。郎。反思。方法签名;导入组织。spring框架。核心。defaultparameternamediscoverer;导入org。spring框架。刻板印象。组件;导入Java。郎。反思。方法;导入Java。util。hashmap导入Java。util。地图;/* * * * *作者zhr_java@163.com * @日期2022/3/29 20:59 */@方面@组件公共类日志方面{ @ Pointcut( @ annotation(com。举例。日志。注释。日志通知))public void doLog(){ } @ Around( doLog())public Object insert log(ProceedingJoinPoint连接点)抛出可抛出的{ Object Object=连接点。proceed();请尝试{ HashMap paramsMapsignature签名=连接点。获取签名();方法方法=((MethodSignature)签名)。get方法();字符串方法名=方法。getname();字符串类名=方法。getdeclaringclass().getName();params map=(HashMap)get params(连接点,方法);//打印日志,可以记录到数据库的日志表里面,等到有客户反馈的时候好去查询日志系统。出去。println(方法名: 方法名);类名:“类名”;params map : params map);//也可以记录请求当前接口耗费的时间} catch(异常e) { //如果在日志记录的过程中出现问题,那么要处理一下异常,不要直接抛出,此处做成消息队列通知或者打印日志} //此处要进行返回代理的对象,如果没有返回的话,前端是收不到数据的返回对象;} private MapString,Object get params(ProceedingJoinPoint连接点,方法方法){//get parameter names String[]parameter names=new DefaultParameterNameDiscoverer().getParameterNames(方法);object[]args=连接点。get args();MapString,Object params=new HashMap(8);如果(参数名称!=空参数名字,长度!=0){ for(int I=0;英语字母表中第九个字母参数名字。长度;I){ params。put(参数名[I],args[I]);}返回params}第四步把自定义的注解放到你的接口上面

  包com。举例。演示。控制器;导入com。举例。AOP。日志。注释。日志通知;导入org。spring框架。网络。绑定。注释。获取映射;导入org。spring框架。网络。绑定。注释。请求映射;导入org。spring框架。网络。绑定。注释。休息控制器;/* * * * @作者zhr_java@163.com * @ date 2022/3/29 20:50 */@ rest controller @请求映射(/person )公共类PersonController { //在此处加上你自定义的注解(@ log notice)@ log notice @ get mapping( get _ person )公共字符串getPerson(整数){ return 123}}第五步测试

  到此这篇关于面向方面编程实现日志收集管理功能的文章就介绍到这了,更多相关面向方面编程日志收集管理内容请搜索盛行信息技术以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行它!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: