# aspectj-log **Repository Path**: git.jason_zhang/aspectj-log ## Basic Information - **Project Name**: aspectj-log - **Description**: 学习springboot controller 用注解,线程池增加日志 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-11-29 - **Last Updated**: 2022-11-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 学习springboot controller 用注解,线程池增加日志 ## 运行方式 #### 1.导入数据库语句 在sql文件下面的intf_oper_log.sql在数据库新增,同时修改springboot里面的配置为自己的数据库 #### 2.postman访问 get 地址 ​ http://localhost:38094/aoplog/info/list?longge=yysd post 地址 ​ http://localhost:38094/aoplog/info/detail post页面选择 raw -> json 参数 ``` { "name": "longge", "action": "yysd" } ``` #### 3.数据库就能看到有日志记录 ### 4.注意点 ​ 图不截了,有空补充,因为项目里面都是 post请求且是json方式记录日志没问题,get请求不会记录入参 ## 代码解析 ​ 大概就是这样 这样巴拉巴拉 ### 入口类 LogAspect ​ 使用@Aspect 注解 这里是拦截@Log注解,有用这个注解才有日志 ​ @AfterReturning 请求处理后执行 ​ @AfterThrowing 请求异常后执行 ​ 这里可以增加Controller执行时间,要用@Around注解 ​ 参考下这篇文章做更多扩展 ​ Springboot(二十一)@Aspect 切面注解使用 ​ https://blog.csdn.net/u012326462/article/details/82529835 ### 异步管理类 AsyncManager ​ 这里主要可以修改 操作延时时间 OPERATE_DELAY_TIME ### 异步工厂类 TimerTask ​ 要修改记录日志方法 这里修改对应的Mapper或者Service类 ``` public static TimerTask recordOper(final IntfOperLog operLog) { return new TimerTask() { @Override public void run() { // 远程查询操作地点 System.out.println("记录时间" + new Date().getTime()); //这里修改对应的Mapper或者Service类 SpringUtils.getBean(IntfOperLogMapper.class).insert(operLog); } }; } ``` 自定义注解 Log ​ 有需要修改可以 自行修改 ## 知识点 ​ 自定义注解 ​ aop ​ 线程池 ​ 累了 有空在总结