公众号的微网站怎么做网络推广网址
最近接触一个新的传统项目,在联调过程中,查看日志特别不方便,既无trackId,即无接口耗时,所以写了该博客。话不多说,直接上代码
1、实体类user
package com.yk.domain;import lombok.Data;@Data
public class User {private Long id;private String username;private String sex;}
2、接口统计返回实体封装类
/*** @author : yk* @date : 2024/03/11* @description : 封装的基础 result*/
@Data
public class CommonResult<T> implements Serializable {private Integer code;private String message;private String traceId;private Long costTime;private T data;}
2、controller层
@Slf4j
@RestController
@RequestMapping("user")
public class UserController {@GetMapping("/query")public CommonResult<User> query(@RequestParam(name = "id", required = false, defaultValue = "1") Long id) {User user = new User();user.setId(id);user.setUsername("yk");user.setSex("男");CommonResult<User> apiResult = new CommonResult<>();apiResult.setData(user);return apiResult;}@PostMapping("/queryUser")public CommonResult<User> queryAlert(@RequestBody User user) {CommonResult<User> apiResult = new CommonResult<>();apiResult.setData(user);return apiResult;}}
3、aspect包
public class TraceIdUtil {public static final String REGEX = "-";public static final String TRACE_ID = "trace_id";/*** 从header和参数中获取traceId* 从网关传入数据** @param request HttpServletRequest* @return traceId*/public static String getTraceIdByRequest(HttpServletRequest request) {String traceId = request.getParameter(TRACE_ID);if (StringUtils.isBlank(traceId)) {traceId = request.getHeader(TRACE_ID);}return traceId;}/*** 传递traceId至MDC** @param traceId 链路id*/public static void setTraceId(String traceId) {if (StringUtils.isNotBlank(traceId)) {MDC.put(TRACE_ID, traceId);}}/*** 构建traceId** @return*/public static String getTraceId() {if (StringUtils.isBlank(MDC.get(TRACE_ID))) {String traceId = UUID.randomUUID().toString()