AOP是面向切面编程,面向切面思想就是让我们把程序想象成一条一条管道连接起来的大管道,而AOP就是在管道和管道之间的过滤网,能够在不影响管道的情况下对管道中传输的数据进行记录,修改。 使用AOP我们可以很方便地进行操作日志记录,性能日志记录,请求日志记录,事务操作,安全管理等。这么说可能很抽象,再详细点说就是各种...
1.创建枚举类 这个枚举类的作用就是记录我们调用的接口是什么样的一个类型的,是查找、删除还是其他。 publicenumBusinessType{/*** 其它*/OTHER,/*** 新增*/INSERT,/*** 修改*/UPDATE,/*** 删除*/DELETE,/*** 浏览*/LIST} 2..创建Log注解 默认的操作为空,默认的操作类型是OTHER。 @Target({ElementTyp...
通过@Around注解使用。 1.4 AOP底层原理 它是基于代理设计模式,而代理设计模式又分为静态代理和动态代理,静态代理比较简单就是一个接口,分别由一个真实实现和一个代理实现,而动态代理分为基于接口的JDK动态代理和基于类的CGLIB的动态代理。 二、自定义注解 下面就以我们实际开发为例,我们先需要给每个接口加上注解,并...
packagecom.example.myspringboot.annotation;importcom.example.myspringboot.bean.OperationEnum;importjava.lang.annotation.*;/** * 自定义日志注解 */@Target(value={ElementType.METHOD})@Retention(value=RetentionPolicy.RUNTIME)@Documentedpublic@interfaceMyLog{/** * 日志描述信息 */Stringdesc()default"";/*...
1、定义注解 /** * ClassName Crmlog * AOP日志记录 自定义注解类 */@Target({ElementType.PARAMETER,ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic@interfaceSystemCrmlog{/** * 日志描述 * 对于什么表格进行了什么操作 */Stringdescription()default"";/** ...
使用@Aspect注解定义一个切面类LogAspect,用于拦截带有@Log注解的方法,并记录日志: 注意:这里的saveLog方法需要根据实际业务逻辑进行实现,包括日志信息的详细组装和数据库保存操作。 使用注解 在需要记录日志的方法上添加@Log注解: 总结 通过上述步骤,我们利用AOP和自定义注解在SpringBoot应用中实现了操作日志的记录。这种...
SpringMVC利用AOP实现自定义注解记录日志,本文抛砖引玉,并没有详细的介绍更全面的内容,通过一个例子让初次使用的人能够快速入门,简单的介绍一下。第
1)这里实现了对自定义注解的环绕增强切点,对使用了自定义注解的方法进行AOP切面处理; 2)对方法运行时间进行监控; 3)对方法名,参数名,参数值,对日志描述的优化处理; 在方法上增加@Aspect注解声明切面,使用@Pointcut注解定义切点,标记方法。 使用切点增强的时机注解:@Before,@Around,@AfterReturning,@AfterThrowing,@Af...
本文主要记录如何使用注解+aop切面+异步监听的方式来实现日志记录功能。 主要记录的信息有: 操作人,操作IP,方法名,参数,消耗时间,日志类型,操作类型(操作日志和异常日志)以及增删改查记录,操作时间等。 主要流程: AOP切面得到请求数据 -> 发布监听事件 -> 异步监听日志入库 ...
2.自定义日志注解 自定义日志注解,可以更加控制我们需要落库的请求日志以及方法. @Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public@interfaceYuanLiLog{Stringname();//所调用接口的名称/** * 这里我们可以根据自己的需要定制很多属性 ...