背景
在项目开发中,通常我们会记录一些用户操作上的日志,主要有修改人、修改时间、修改内容等等,可以使用自定义注解和AOP的方法;面向切面的编程,就算是记录日志出错了也不影响到主流程业务。
1.自定义注解@Log用于标识需要记录日志的方法;
2.定义一个AOP切面;
3.在对应场景上添加该注解;
4.项目中对应场景上,需要记录日志的,在对应方法上添加注解即可;
记录的日志可以根据系统实际情况进行存储,建议异步记录日志信息。
自定义注解
1.自定义注解用于标识需要拦截的方法,可以是主题和类型等,具体视情况而定;
2.核心代码如下:
定义Spring AOP切面
Spring AOP提供了几种注解用于不同的场景。这里选择了@AfterReturning,在方法执行完后再去执行,并且用@Async声明了该方法是异步的执行。注:SpringBoot使用@Async需要在启动时加上@EnableAsync
1.@Before 在拦截方法执行前执行;
2.@After 在拦截方法执行之后执行;
3.@AfterReturning 在拦截方法返回后执行;
4.@AfterThrowing 在拦截方法抛出异常后执行;
5.@Around 是可以同时在所拦截方法的前后执行;
6.核心代码如下:
注解场景使用
1.定义好注解之后,可以在对应调用方法上添加该注解;
2.核心代码如下: