feat: finished jpa base monitor

This commit is contained in:
tjq 2022-09-09 00:09:22 +08:00
parent e23825c399
commit cca9c5421e
3 changed files with 12 additions and 4 deletions

View File

@ -2,6 +2,7 @@ package tech.powerjob.server.common.utils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.Signature;
import org.aspectj.lang.reflect.MethodSignature;
@ -27,6 +28,10 @@ public class AOPUtils {
private static final ExpressionParser parser = new SpelExpressionParser();
private static final ParameterNameDiscoverer discoverer = new LocalVariableTableParameterNameDiscoverer();
public static String parseRealClassName(JoinPoint joinPoint) {
return joinPoint.getSignature().getDeclaringType().getSimpleName();
}
public static Method parseMethod(ProceedingJoinPoint joinPoint) {
Signature pointSignature = joinPoint.getSignature();
if (!(pointSignature instanceof MethodSignature)) {

View File

@ -4,7 +4,9 @@ import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.aop.support.AopUtils;
import org.springframework.stereotype.Component;
import tech.powerjob.server.common.utils.AOPUtils;
import tech.powerjob.server.monitor.monitors.ServerMonitor;
import javax.annotation.Resource;
@ -34,11 +36,11 @@ public class DatabaseMonitorAspect {
}
private Object wrapperMonitor(ProceedingJoinPoint point, DatabaseType type) throws Throwable {
final String className = point.getTarget().getClass().getSimpleName();
String classNameMini = AOPUtils.parseRealClassName(point);
final String methodName = point.getSignature().getName();
DatabaseEvent event = new DatabaseEvent().setType(type)
.setServiceName(className)
.setServiceName(classNameMini)
.setMethodName(methodName)
.setStatus(DatabaseEvent.Status.SUCCESS);

View File

@ -13,6 +13,7 @@ import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.multipart.MultipartFile;
import tech.powerjob.server.common.utils.AOPUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@ -60,8 +61,8 @@ public class WebLogAspect {
}
HttpServletRequest request = requestAttributes.getRequest();
String[] classNameSplit = joinPoint.getSignature().getDeclaringTypeName().split("\\.");
String classNameMini = classNameSplit[classNameSplit.length - 1];
String classNameMini = AOPUtils.parseRealClassName(joinPoint);
String classMethod = classNameMini + "." + joinPoint.getSignature().getName();
// 排除特殊类