请问fastjson2里面PropertyPreFilters在哪?
来源:5-9 SpringBoot AOP的使用

RikaShiro
2023-03-08
如题。springAOP中 复制了LogAspect.java源码。
但是import com.alibaba.fastjson2.support.spring.PropertyPreFilters;报错
不想使用老版fastjson
写回答
1回答
-
RikaShiro
提问者
2023-03-08
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.filter.SimplePropertyPreFilter; import jakarta.servlet.ServletRequest; import jakarta.servlet.ServletResponse; import jakarta.servlet.http.HttpServletRequest;
@Before("controllerPointcut()") public void doBefore(JoinPoint joinPoint) throws Throwable { // 开始打印请求日志 ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletRequest request = attributes.getRequest(); Signature signature = joinPoint.getSignature(); String name = signature.getName(); // 打印请求信息 LOG.info("------------- 开始 -------------"); LOG.info("请求地址: {} {}", request.getRequestURL().toString(), request.getMethod()); LOG.info("类名方法: {}.{}", signature.getDeclaringTypeName(), name); LOG.info("远程地址: {}", request.getRemoteAddr()); // 打印请求参数 Object[] args = joinPoint.getArgs(); // LOG.info("请求参数: {}", JSONObject.toJSONString(args)); Object[] arguments = new Object[args.length]; for (int i = 0; i < args.length; i++) { if (args[i] instanceof ServletRequest || args[i] instanceof ServletResponse || args[i] instanceof MultipartFile) { continue; } arguments[i] = args[i]; } // 排除字段,敏感字段或太长的字段不显示 String[] excludeProperties = { "password", "file" }; SimplePropertyPreFilter filter = new SimplePropertyPreFilter(); for (String str : excludeProperties) { filter.getExcludes().add(str); } LOG.info("请求参数: {}", JSON.toJSONString(arguments, filter)); } @Around("controllerPointcut()") public Object doAround(ProceedingJoinPoint proceedingJoinPoint) throws Throwable { long startTime = System.currentTimeMillis(); Object result = proceedingJoinPoint.proceed(); // 排除字段,敏感字段或太长的字段不显示 String[] excludeProperties = { "password", "file" }; SimplePropertyPreFilter filter = new SimplePropertyPreFilter(); for (String str : excludeProperties) { filter.getExcludes().add(str); } LOG.info("返回结果: {}", JSON.toJSONString(result, filter)); LOG.info("------------- 结束 耗时:{} ms -------------", System.currentTimeMillis() - startTime); return result; }
已解决。换成SimplePropertyPreFilter
00
相似问题
请问sql文件 在哪里呀?
回答 1
是不这里修改了导致页面发生变化
回答 1