1、pom依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>

2、切点定义

/**
* 利用切面记录线程调用监控中心记录
*
*/

//将bean注入spring容器
@Component

//开启aop注解
@Aspect
public class ThreadCallRecoedAop {
public Logger logger = LoggerFactory
.getLogger(ThreadCallRecoedAop.class);// 输出日志
@Autowired
private RecordLogAsync recordLogAsync;
@Pointcut("execution(* com.sigmatrix.thread.controller.ReceiveThreadStateController.receive(..))")//切入点描
public void controllerLog(){}
/**
* 记录线程调用监控中心日志
* 在方法执行之前进行切面切入
*/

@Before("controllerLog()")
public void recordLog(JoinPoint pjp){
Object[] args;
try{
logger.info("-------------异步记录日志开始");

//获取参数
args = pjp.getArgs();
ThreadStateRecord threadStateRecord=(ThreadStateRecord) args[0];

//进行异步日志记录,防止阻塞
recordLogAsync.insertThreadCallLog(threadStateRecord);
logger.info("-------------异步记录日志成功");
}catch(Throwable te){
logger.error("异步记录日志异常信息为:",te);
}
}

}

/**
* 异步记录日志入库
*
*/
@Component
public class RecordLogAsync {
@Autowired
private ThreadCallRecordService threadCallRecordService;
/**
* 记录线程调用监控中心日志
*
*/
@Async
public void insertThreadCallLog(ThreadStateRecord threadStateRecord) throws Throwable{
ThreadCallRecord threadCallRecord =new ThreadCallRecord();
//记录时间
threadCallRecord.setThreadCallTime(new Date());
//线程名字
threadCallRecord.setThreadName(threadStateRecord.getThreadName());
//调用监控中心线程配置信息
threadCallRecord.setCallMeaaage(threadStateRecord.getThreadCallMessage());
//线程状态
threadCallRecord.setThreadState(threadStateRecord.getThreadMessage());
threadCallRecordService.insertSelective(threadCallRecord);
threadCallRecord =null;
}
}

3、开启异步Async注解使用

spring boot集成aop实现日志记录的更多相关文章

  1. Spring Boot 使用 Aop 实现日志全局拦截

    前面的章节我们学习到 Spring Boot Log 日志使用教程 和 Spring Boot 异常处理与全局异常处理,本章我们结合 Aop 面向切面编程来实现全局拦截异常并记录日志. 在 Sprin ...

  2. Spring Boot 入门(五):集成 AOP 进行日志管理

    本篇文章是接着 Spring boot 入门(四):集成 Shiro 实现登陆认证和权限管理写的,按照前面几篇博客的教程,可以搭建一个简单的项目,主要包含了 Pagehelper+MyBatis 分页 ...

  3. Spring AOP 完成日志记录

    Spring AOP 完成日志记录 http://hotstrong.iteye.com/blog/1330046

  4. Spring AOP进行日志记录

    在java开发中日志的管理有很多种.我一般会使用过滤器,或者是Spring的拦截器进行日志的处理.如果是用过滤器比较简单,只要对所有的.do提交进行拦截,然后获取action的提交路径就可以获取对每个 ...

  5. Spring AOP进行日志记录,管理

    在java开发中日志的管理有很多种.我一般会使用过滤器,或者是Spring的拦截器进行日志的处理.如果是用过滤器比较简单,只要对所有的.do提交进行拦截,然后获取action的提交路径就可以获取对每个 ...

  6. Spring Boot 集成日志logback + 控制台打印SQL

    一: 控制台打印SQL application.properties中添加如下即可在控制台打印sql logging.level.com.fx.fxxt.mapper=debug 二:日志 因为Spr ...

  7. spring boot 集成logstash 日志

    1.logstash 插件配置 logstash下config文件夹下添加 test.conf 文件内容: input{ tcp { mode => "server" hos ...

  8. 81. Spring Boot集成JSP疑问【从零开始学Spring Boot】

    [原创文章,转载请注明出处] 针对文章: ()Spring Boot 添加JSP支持[从零开始学Spring Boot] 有网友提了这么一些疑问: 1.Spring Boot使用jsp时,仍旧可以打成 ...

  9. (37)Spring Boot集成EHCache实现缓存机制【从零开始学Spring Boot】

    [本文章是否对你有用以及是否有好的建议,请留言] 写后感:博主写这么一系列文章也不容易啊,请评论支持下. 如果看过我之前(35)的文章这一篇的文章就会很简单,没有什么挑战性了. 那么我们先说说这一篇文 ...

随机推荐

  1. C++面试

    C++ Primer.STL源码剖析.设计模式 C++ 析构函数可以是虚函数吗?为什么 构造函数可以是虚函数吗?为什么 如何防止类被继承 手写String类(实现类里面常用函) 什么是野指针如何避免这 ...

  2. const 成员函数

    我们知道,在成员函数中,如果没有修改成员变量,应该给成员函数加上 const 修饰符,例如 #include <iostream> using namespace std; class F ...

  3. LINQ 详解

    LINQ,语言集成查询(Language INtegrated Query)是一组用于c#和Visual Basic语言的扩展.它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作 ...

  4. Typescript高级类型与泛型难点详解

    最近做的TS分享,到了高级类型这一块.通过琢磨和实验还是挖掘出了一些深层的东西,在此处做一下记录,也分享给各位热爱前端的小伙伴.   其实在学习TS之前就要明确以下几点:   1. typescrip ...

  5. java 图片裁剪

    图片裁剪功能,我一直以为是前端那边去做,后台不用做过多的考虑,现在我发现,前端去做裁剪好像不是太理想,我在这里简单地介绍一下我们大java的裁剪功能 前端只需要上传,x (x轴),y(y轴) , h( ...

  6. 洛谷P1379 八数码难题

    传送门 1.先用dfs枚举9!的全排列,存到hash数组里(类似离散化),因为顺序枚举,就不需要排序了 2.朴素bfs,判重就用二分找hash:如果发现当前状态=要求状态,输出步数结束程序 上代码 # ...

  7. Windows系统Git安装配置

    Git的安装 Git是一个开源的分布式的版本控制软件,是Linus Torvalds 为了方便开源贡献者协同开发和管理 Linux 内核开发替代BitKe而开发的. 打开git官网的下载地址:http ...

  8. maven入门概念及使用

    Maven 一.Maven概念 1.maven是什么:Maven 是一个项目管理工具.它负责管理项目开发过程中的几乎所有的东西. 版本.构建.输出物管理.依赖关系.文档和构建结果.项目关系.移植性管理 ...

  9. linux更换jdk版本

    参考:https://blog.csdn.net/meilin_ya/article/details/80650945 1.将两个版本的jdk放到linux环境2.设置选择使用alternatives ...

  10. Windows nessus安装

    1.官网下载nessus,下载速度很慢,要有耐心 2.安装,安装完成后访问https://localhost:8834,最好使用chrome浏览器 3.页面注册,更新plugins等 4.如果页面无法 ...