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. HTTPS开发(SSL--用Tomcat服务器配置https双向认证)

    准备工作: 1.windows+R  cmd 打开命令窗口 2.输入:cd C:\Program Files\Java\jdk1.7.0_80\bin 进入路径找到keytool工具 为服务器生成证书 ...

  2. Python_多进程

    Python 多进程库 multiprocessing ,支持子进程.通信.数据共享.执行不同形式的同步 多进程,绕过gil ,实现多核的利用,多进程也是原生进程,由操作系统维护 在pycharm中, ...

  3. pc端网页,移动端网页(andorid、ios)离开页面做一个时间存储

    如图所示:在一个页面中做了一个倒计时,然后用户想离开页面做其他事情,需求是离开页面之后把时间保存,下一次进来继续的时候时间还是上次离开的时间 第一次我用的事件是:  // window.onbefor ...

  4. HttpWebRequest简单使用

    HttpWebRequest简单使用  摘要 HttpWebRequest类对WebRequest中定义的属性和方法提供支持,也对使用户能够直接与使用HTTP的服务器交互的附加属性和方法提供支持. 创 ...

  5. CentOS 7 yum方式快速安装MongoDB

    一.安装环境及配置yum # more /etc/redhat-release CentOS Linux release 7.2.1511 (Core) # vi /etc/yum.repos.d/m ...

  6. Java eclipse导入外部项目时出错怎么解决

    从外部环境import一个项目进入Java工作环境中,若出现以下错误,解决方法如下: 鼠标移上去,会出现以下错误提示: 解决方法: 选中该项目->右键->Build path->Co ...

  7. 前后台得到WEB应用的名称

    前台得到当前应用的名称: ${ pageContext.request.contextPath } 后台得到当前应用的名称: request.getServletContext().getContex ...

  8. C# 堆栈(Stack)和队列(Queue)

    一.什么是堆?(Heap)      堆是无序的,是一片不连续的内存域,由用户自己来控制和释放,如果用户自己不释放的话,当内存达到一定的特定值时,通过垃圾回收器(GC)来回收.      是程序运行期 ...

  9. PostgreSQL自学笔记:与python交互

    与python交互教程 原文地址:https://www.yiibai.com/html/postgresql/2013/080998.html 1. Python psycopg2 模块APIs 连 ...

  10. Petrozavodsk Winter-2018. Carnegie Mellon U Contest

    A. Mines 每个点能爆炸到的是个区间,线段树优化建图,并求出SCC进行缩点. 剔除所有不含任何$n$个点的SCC之后,最小代价为每个入度为$0$的SCC中最小点权之和,用set维护即可. 时间复 ...