接口拦截 日志打印 自定义异常输出

This commit is contained in:
2024-03-06 19:12:45 +08:00
parent 245c7b706d
commit 45d9319811
4 changed files with 106 additions and 83 deletions

View File

@@ -65,7 +65,8 @@ public class GlobalExceptionHandler {
@ExceptionHandler(value = BadRequestException.class)
public ResponseEntity<ApiError> badRequestException(BadRequestException e) {
// 打印堆栈信息
log.error(ThrowableUtil.getStackTrace(e));
// log.error(ThrowableUtil.getStackTrace(e));
log.error(e.getMessage());
return buildResponseEntity(ApiError.error(e.getStatus(),e.getMessage()));
}

View File

@@ -0,0 +1,81 @@
package cn.ysk.cashier.utils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializeConfig;
import com.alibaba.fastjson.serializer.SerializerFeature;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
/**
* json工具类所有JSON转换通用该JSON工具类不许直接使用外部JSON转换后期会封闭掉直接调用JSON转换。
*/
public final class FastJsonUtils {
private static final List<SerializerFeature> listFeatures = new ArrayList<>();
static {
// 输出空置字段
listFeatures.add(SerializerFeature.WriteMapNullValue);
// list字段如果为null输出为[]而不是null
listFeatures.add(SerializerFeature.WriteNullListAsEmpty);
// 数值字段如果为null输出为0而不是null
// SerializerFeature.WriteNullNumberAsZero,
// Boolean字段如果为null输出为false而不是null
listFeatures.add(SerializerFeature.WriteNullBooleanAsFalse);
// 字符类型字段如果为null输出为""而不是null
listFeatures.add(SerializerFeature.WriteNullStringAsEmpty);
// 循环引用
listFeatures.add(SerializerFeature.DisableCircularReferenceDetect);
}
/**
* 转换对象为JSON字符串
*
* @param object 转换对象
* @return 转换结果
*/
public static String toJSONString(Object object) {
//不可序列化的类型直接打印其类名称
if (object instanceof HttpServletRequest
|| object instanceof HttpServletResponse
|| object instanceof MultipartFile
|| object instanceof MultipartFile[]) {
return "[" + object.getClass().getSimpleName() + "]";
} else {
return toJSONString(object, null, "yyyy-MM-dd HH:mm:ss");
}
}
/**
* JSON 转换出口
*
* @param o 转换对象
* @param serializeConfig 转换配置
* @param DateFormat 时间格式化
* @return 转换结果
*/
private static String toJSONString(Object o, SerializeConfig serializeConfig, String DateFormat) {
SerializeConfig config;
SerializerFeature[] features;
if (serializeConfig != null) {
config = serializeConfig;
} else {
config = new SerializeConfig();
}
if (StringUtils.isNotBlank(DateFormat)) {
// 设置自定义时间
JSON.DEFFAULT_DATE_FORMAT = DateFormat;
features = new SerializerFeature[listFeatures.size() + 1];
features = listFeatures.toArray(features);
features[features.length - 1] = SerializerFeature.WriteDateUseDateFormat;
} else {
features = new SerializerFeature[listFeatures.size()];
features = listFeatures.toArray(features);
}
return JSON.toJSONString(o, config, features);
}
}