java 记录事务的日志,关于spring 事务 和 AOP 管理事务和打印日志问题

关于spring 事务 和 AOP 管理事务和打印日志问题

1.

​ 可以在server层总使用@Transactional,进行方法内的事务管理

配置

oracle.jdbc.driver.OracleDriver

jdbc:oracle:thin:@localhost:1521:orcl

xxx

xxx

255

2

120000

2. 在applicationContent.xml 引入 applicationContext-aop.xml

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:aop="http://www.springframework.org/schema/aop"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/aop

http://www.springframework.org/schema/aop/spring-aop.xsd ">

3. 用于aop处理日志和异常的java

package com.xxx.aop;

import org.aspectj.lang.JoinPoint;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

/**

* AOP 统一处理异常和返回值

*/

public class ServiceLogging {

private static Logger exceptionLogger = LoggerFactory.getLogger("ExceptionLogging");

private static Logger methodInvokeLogger = LoggerFactory.getLogger("MethodInvokeLogging");

/**

* 捕获Service层抛出的异常并做日志

*

* @param throwable 方法抛出的异常

*/

public void loggingServiceException(Throwable throwable) {

if (exceptionLogger.isErrorEnabled()) {

StringBuilder builder = new StringBuilder();

builder.append("cause:").append(throwable.getMessage());

builder.append("ntstackTrack:n");

for (StackTraceElement stack : throwable.getStackTrace()) {

builder.append("tt");

builder.append(stack.toString());

builder.append("n");

}

exceptionLogger.error(builder.toString());

}

}

/**

* 记录Service方法的调用

*

* @param joinPoint 切入点

*/

public void loggingMethodInvoked(JoinPoint joinPoint) {

if (methodInvokeLogger.isDebugEnabled()) {

String methodName = joinPoint.getSignature().getName();

Object[] args = joinPoint.getArgs();

StringBuilder builder = new StringBuilder();

builder.append("调用方法[AOP切入点]:").append(methodName);

builder.append("t参数:");

for (Object arg : args) {

builder.append(arg.toString());

}

methodInvokeLogger.debug(builder.toString());

}

}

}

总结

以上工作做完后,只要有访问当 com.xxx.service.impl 目录下的所有方法。aop都会帮助我们答应访问的日志,如果加上 @Transactional 会将整个方法内的事务统一管理。有异常时也会通过aop抛出异常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值