Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
W
workflow-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
workflow-platform
Commits
d3329768
Commit
d3329768
authored
May 22, 2025
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改部分pom
parent
6e9bce59
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
155 additions
and
144 deletions
+155
-144
common-lib/pom.xml
common-lib/pom.xml
+5
-0
workflow-engine/pom.xml
workflow-engine/pom.xml
+1
-0
workflow-manager/pom.xml
workflow-manager/pom.xml
+4
-0
workflow-manager/src/main/java/com/mortals/xhx/base/framework/aspect/LogPrintAspect.java
...com/mortals/xhx/base/framework/aspect/LogPrintAspect.java
+145
-144
No files found.
common-lib/pom.xml
View file @
d3329768
...
...
@@ -76,6 +76,11 @@
<artifactId>
junit
</artifactId>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
<scope>
provided
</scope>
</dependency>
</dependencies>
...
...
workflow-engine/pom.xml
View file @
d3329768
...
...
@@ -139,6 +139,7 @@
<dependency>
<groupId>
org.flowable
</groupId>
<artifactId>
flowable-spring-boot-starter-basic
</artifactId>
<version>
6.6.0
</version>
</dependency>
<dependency>
...
...
workflow-manager/pom.xml
View file @
d3329768
...
...
@@ -71,6 +71,10 @@
<artifactId>
junit
</artifactId>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-aop
</artifactId>
</dependency>
</dependencies>
...
...
workflow-manager/src/main/java/com/mortals/xhx/base/framework/aspect/LogPrintAspect.java
View file @
d3329768
package
com.mortals.xhx.base.framework.aspect
;
import
com.alibaba.fastjson.JSONObject
;
import
com.mortals.xhx.base.framework.annotation.LogPrint
;
import
lombok.extern.slf4j.Slf4j
;
import
org.aspectj.lang.JoinPoint
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.annotation.*
;
import
org.springframework.context.annotation.Profile
;
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
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.lang.reflect.Method
;
//@Aspect
//@Component
//@Profile({"dev"}) //一般生产环境不允许日志打印参数
@Slf4j
public
class
LogPrintAspect
{
/**
* 换行符
*/
private
static
final
String
LINE_SEPARATOR
=
System
.
lineSeparator
();
/**
* 以自定义 @LogPrint 注解为切点
*/
//@Pointcut("@annotation(com.*.*.config.annotation.LogPrint)")
@Pointcut
(
"execution(public * com.mortals.xhx..*Controller.*(..))"
)
public
void
logPrint
()
{
}
/**
* 在切点之前织入
*
* @param joinPoint
* @throws Throwable
*/
@Before
(
"logPrint()"
)
public
void
doBefore
(
JoinPoint
joinPoint
)
throws
Throwable
{
// 开始打印请求日志
ServletRequestAttributes
attributes
=
(
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
();
HttpServletRequest
request
=
attributes
.
getRequest
();
// 获取 @WebLog 注解的描述信息
String
methodDescription
=
getAspectLogDescription
(
joinPoint
);
// 打印请求相关参数
log
.
info
(
"========================================== Start =========================================="
);
// 打印请求 url
log
.
info
(
"URL : {}"
,
request
.
getRequestURL
().
toString
());
// 打印描述信息
log
.
info
(
"Description : {}"
,
methodDescription
);
// 打印 Http method
log
.
info
(
"HTTP Method : {}"
,
request
.
getMethod
());
// 打印调用 controller 的全路径以及执行方法
log
.
info
(
"Class Method : {}.{}"
,
joinPoint
.
getSignature
().
getDeclaringTypeName
(),
joinPoint
.
getSignature
().
getName
());
// 打印请求的 IP
log
.
info
(
"IP : {}"
,
request
.
getRemoteAddr
());
// 打印请求入参
log
.
info
(
"Request Args : {}"
,
getParams
(
joinPoint
));
}
/**
* 在切点之后织入
*
* @throws Throwable
*/
@After
(
"logPrint()"
)
public
void
doAfter
()
throws
Throwable
{
// 接口结束后换行,方便分割查看
log
.
info
(
"=========================================== End ==========================================="
+
LINE_SEPARATOR
);
}
/**
* 环绕
*
* @param proceedingJoinPoint
* @return
* @throws Throwable
*/
@Around
(
"logPrint()"
)
public
Object
doAround
(
ProceedingJoinPoint
proceedingJoinPoint
)
throws
Throwable
{
long
startTime
=
System
.
currentTimeMillis
();
Object
result
=
proceedingJoinPoint
.
proceed
();
// 打印出参
log
.
info
(
"Response Args : {}"
,
JSONObject
.
toJSONString
(
result
));
// 执行耗时
log
.
info
(
"Time-Consuming : {} ms"
,
System
.
currentTimeMillis
()
-
startTime
);
return
result
;
}
/**
* 获取切面注解的描述
*
* @param joinPoint 切点
* @return 描述信息
* @throws Exception
*/
public
String
getAspectLogDescription
(
JoinPoint
joinPoint
)
throws
Exception
{
String
targetName
=
joinPoint
.
getTarget
().
getClass
().
getName
();
String
methodName
=
joinPoint
.
getSignature
().
getName
();
Object
[]
arguments
=
joinPoint
.
getArgs
();
Class
targetClass
=
Class
.
forName
(
targetName
);
Method
[]
methods
=
targetClass
.
getMethods
();
StringBuilder
description
=
new
StringBuilder
(
""
);
for
(
Method
method
:
methods
)
{
if
(
method
.
getName
().
equals
(
methodName
))
{
Class
[]
clazzs
=
method
.
getParameterTypes
();
if
(
clazzs
.
length
==
arguments
.
length
)
{
description
.
append
(
method
.
getAnnotation
(
LogPrint
.
class
).
description
());
break
;
}
}
}
return
description
.
toString
();
}
private
String
getParams
(
JoinPoint
joinPoint
)
{
String
params
=
""
;
if
(
joinPoint
.
getArgs
()
!=
null
&&
joinPoint
.
getArgs
().
length
>
0
)
{
for
(
int
i
=
0
;
i
<
joinPoint
.
getArgs
().
length
;
i
++)
{
Object
arg
=
joinPoint
.
getArgs
()[
i
];
if
((
arg
instanceof
HttpServletResponse
)
||
(
arg
instanceof
HttpServletRequest
)
||
(
arg
instanceof
MultipartFile
)
||
(
arg
instanceof
MultipartFile
[]))
{
continue
;
}
try
{
params
+=
JSONObject
.
toJSONString
(
joinPoint
.
getArgs
()[
i
]);
}
catch
(
Exception
e1
)
{
log
.
error
(
e1
.
getMessage
());
}
}
}
return
params
;
}
}
//package com.mortals.xhx.base.framework.aspect;
//
//import com.alibaba.fastjson.JSONObject;
//import com.mortals.xhx.base.framework.annotation.LogPrint;
//import lombok.extern.slf4j.Slf4j;
//import org.aspectj.lang.JoinPoint;
//import org.aspectj.lang.ProceedingJoinPoint;
//import org.aspectj.lang.annotation.*;
//import org.springframework.aop.Pointcut;
//import org.springframework.context.annotation.Profile;
//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 javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import java.lang.reflect.Method;
//
////@Aspect
////@Component
////@Profile({"dev"}) //一般生产环境不允许日志打印参数
//@Slf4j
//public class LogPrintAspect {
// /**
// * 换行符
// */
// private static final String LINE_SEPARATOR = System.lineSeparator();
//
// /**
// * 以自定义 @LogPrint 注解为切点
// */
// //@Pointcut("@annotation(com.*.*.config.annotation.LogPrint)")
// @Pointcut("execution(public * com.mortals.xhx..*Controller.*(..))")
// public void logPrint() {
// }
//
// /**
// * 在切点之前织入
// *
// * @param joinPoint
// * @throws Throwable
// */
// @Before("logPrint()")
// public void doBefore(JoinPoint joinPoint) throws Throwable {
// // 开始打印请求日志
// ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
// HttpServletRequest request = attributes.getRequest();
//
// // 获取 @WebLog 注解的描述信息
// String methodDescription = getAspectLogDescription(joinPoint);
//
// // 打印请求相关参数
// log.info("========================================== Start ==========================================");
// // 打印请求 url
// log.info("URL : {}", request.getRequestURL().toString());
// // 打印描述信息
// log.info("Description : {}", methodDescription);
// // 打印 Http method
// log.info("HTTP Method : {}", request.getMethod());
// // 打印调用 controller 的全路径以及执行方法
// log.info("Class Method : {}.{}", joinPoint.getSignature().getDeclaringTypeName(), joinPoint.getSignature().getName());
// // 打印请求的 IP
// log.info("IP : {}", request.getRemoteAddr());
// // 打印请求入参
// log.info("Request Args : {}", getParams(joinPoint));
// }
//
// /**
// * 在切点之后织入
// *
// * @throws Throwable
// */
// @After("logPrint()")
// public void doAfter() throws Throwable {
// // 接口结束后换行,方便分割查看
// log.info("=========================================== End ===========================================" + LINE_SEPARATOR);
// }
//
// /**
// * 环绕
// *
// * @param proceedingJoinPoint
// * @return
// * @throws Throwable
// */
// @Around("logPrint()")
// public Object doAround(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
// long startTime = System.currentTimeMillis();
// Object result = proceedingJoinPoint.proceed();
// // 打印出参
// log.info("Response Args : {}", JSONObject.toJSONString(result));
// // 执行耗时
// log.info("Time-Consuming : {} ms", System.currentTimeMillis() - startTime);
// return result;
// }
//
//
// /**
// * 获取切面注解的描述
// *
// * @param joinPoint 切点
// * @return 描述信息
// * @throws Exception
// */
// public String getAspectLogDescription(JoinPoint joinPoint)
// throws Exception {
// String targetName = joinPoint.getTarget().getClass().getName();
// String methodName = joinPoint.getSignature().getName();
// Object[] arguments = joinPoint.getArgs();
// Class targetClass = Class.forName(targetName);
// Method[] methods = targetClass.getMethods();
// StringBuilder description = new StringBuilder("");
// for (Method method : methods) {
// if (method.getName().equals(methodName)) {
// Class[] clazzs = method.getParameterTypes();
// if (clazzs.length == arguments.length) {
// description.append(method.getAnnotation(LogPrint.class).description());
// break;
// }
// }
// }
// return description.toString();
// }
//
// private String getParams(JoinPoint joinPoint) {
// String params = "";
// if (joinPoint.getArgs() != null && joinPoint.getArgs().length > 0) {
// for (int i = 0; i < joinPoint.getArgs().length; i++) {
// Object arg = joinPoint.getArgs()[i];
// if ((arg instanceof HttpServletResponse) || (arg instanceof HttpServletRequest)
// || (arg instanceof MultipartFile) || (arg instanceof MultipartFile[])) {
// continue;
// }
// try {
// params += JSONObject.toJSONString(joinPoint.getArgs()[i]);
// } catch (Exception e1) {
// log.error(e1.getMessage());
// }
// }
// }
// return params;
// }
//
//}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment