新的Spring Aop实现全局日志记录功能
在2015年本站里面的一篇《浅浅的议一下Spring整合EhCache的两种方式》文章中,笔者头一次的认识到了缓存结合自定义注解使用的便捷,但心中小小的疑问是不清除它是怎么实现的,借着这次翻起使用Aop实现全局日志的功能又想起了这茬,又琢磨着去再实现一版,主旨是参考上述文章的自定义注解和表达式引擎实现,如此,首选要去了解的便是spel表达式引擎的使用,看了一下资料感觉与Apache的commons-el高度的相识,在简单了解spel表达式引擎的API后,觉得实现已经不再是问题了,本文将是一版新的全局用户cao作日志记录的实现。 文接前篇,围绕前文说的缺点进行改进: (1)将更少的切入实际业务逻辑; (2)增加拦截函数出现错误时的日志记录; 本次实现的原理是使用自定义注解的形式集成spel表达式引擎定义好需记录的log内容,在拦截器中使用反射去获取被拦截函数中的所有参数定义的变量名称,将变量...
文章分类:后端一部分 Spring Spring 基本
Spring基本篇操作日志总结以前的Spring Aop实现全局日志记录功能
使用Spring Aop记录全局的日志的实现本次是第三次改进了,对于这个功能我是小有心得,记得头一次实现这个还是portal项目的那个年代,你我还不是一般的渣渣水平的时候,由一个领导哥实现的,大概的实现方案是采用Aop全局拦截Service函数,获得所有函数的返回值,将返回值记录在数据库,以实现用户的操作日志记录功能,换句话说,这使得我们整个项目的所有增删类的功能都要修改为带返回值类型的实现,即在根据ID删除数据的同时,我们需要先根据ID将数据查询出来,再去做删除的动作,最后将查询出来的这个对象作为返回值,同时也需要重写这个返回值类型的对象的toString()函数(当年还没有json的概念,还是xml格式数据交换盛行的年代)。 上述这种记录日志功能的实现我一直记在心里,但是我并不认为这种实现比较好,因为它限定了函数的必须返回值类型和返回类型的toString,所以在本站的全局日志记录功能...
文章分类:后端一部分 Spring Spring 基本
Spring基本篇操作日志Spring el表达式的进阶使用
本篇文章中摘取了一些个人认为可能是会常用到的实现,主要是spel的数组应用、集合应用、方法应用、自定义方法应用等,然而它的强大不仅限于此,只是使用贵在引导。 数组应用:长度获取、下标值获取、数组对象的函数使用,东西比较简单,详细如下: 集合应用:List<Integer>结构、List<Map<Object , Object>>结构、List的新增、修改、删除; 方法应用:同java中实际类型的对象等同,可直接调用其对应的函数,以substring函数为例; 自定义方法:直接设置对象并调用其自身函数、直接使用new构造对象并调用、注册函数方法使用、注册类的批量函数实现; 代码参考 package cn.chendd; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.reflect.Me...
文章分类:后端一部分 Spring Spring 基本
Spring基本篇Spring el表达式的入门使用及简单封装
本篇文章带你入个小门,实现3个小小的示例以及spel表达式的简单封装,其中3个示例分别为① 变量的引用、② 字符串与变量拼接、③ 字符串的函数调用(String的函数调用);简单封装为set设置值与get取值的简单实现,代码比较简单,参考如下: 代码示例 package cn.chendd; import org.junit.Before; import org.junit.Test; import org.springframework.expression.EvaluationContext; import org.springframework.expression.ExpressionParser; import org.springframework.expression.spel.standard.SpelExpressionParser; import org.springf...
文章分类:后端一部分 Spring Spring 基本
Spring基本篇使用Spring创建注解的示例工程
最近一些时间总是有感于spring的拦截器实现日志功能的有待优化,也许是为了进一步的去实践idea开发,又或者是为了去学习spring的el表达式引擎,于是乎就使用全注解的方式搭建spring项目,一边尝试学习spel,一边尝试使用spel+aop再改进一版全局日志拦截的实现,于是乎就有了本篇章的相关文章,总结细分为下列具体的五篇: (1)使用Spring创建注解的示例工程; (2)Spring el表达式的入门使用及简单封装; (3)Spring el表达式的进阶使用; (4)三种Spring AOP记录日志的功能实现; (5)自定义注解+Spring el实现的全局日志记录; 本文将围绕使用spring注解的方式创建工程,如果是在一个毫无外网和spring环境的机器上去搭建spring环境项目,使用注解无疑是最简单的方式,只需要简单的几个注解就可以了,具体的参考下列代码(这是我这么多年...
文章分类:后端一部分 Spring Spring 基本
Spring基本篇运营时间: 天
用户数量: 人
文章数量: 篇
评论数量: 条
点赞个数: 个
最后更新: