@Slf4j
@Aspect
@Component
public class ControllerLog {
private final ThreadLocal<Long> startTimeThreadLocal =
new NamedThreadLocal<>("ThreadLocal StartTime");
private final ThreadLocal<String> logPrefixThreadLocal =
new NamedThreadLocal<>("ThreadLocal LogPrefix");
@Autowired
private ObjectMapper objectMapper;
/**
* <li>Before : 在方法执行前进行切面</li>
* <li>execution : 定义切面表达式</li>
* <p>public * com.test.controller..*.*(..)
* <li>public :匹配所有目标类的public方法,不写则匹配所有访问权限</li>
* <li>第一个* :方法返回值类型,*代表所有类型 </li>
* <li>第二个* :包路径的通配符</li>
* <li>第三个..* :表示controller这个目录下所有的类,包括子目录的类</li>
* <li>第四个*(..) : *表示所有任意方法名,..表示任意参数</li>
* </p>
*/
@Pointcut("execution(public * com.test.controller..*.*(..))")
public void executionMethod() {
//
aop实现请求入参出参日志打印
最新推荐文章于 2024-08-03 12:09:05 发布