From e2fc75877df017e8145a470b404436dbf00b50d7 Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Mon, 25 Apr 2022 17:33:12 +0300 Subject: [PATCH] =?UTF-8?q?AOP=20=D0=BB=D0=BE=D0=B3=D0=B8=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 1 + .../ru/di9/mirror/aspect/LoggerAspect.java | 30 +++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 src/main/java/ru/di9/mirror/aspect/LoggerAspect.java diff --git a/build.gradle b/build.gradle index 71e526f..c07d615 100644 --- a/build.gradle +++ b/build.gradle @@ -21,6 +21,7 @@ dependencies { annotationProcessor('org.springframework.boot:spring-boot-configuration-processor') implementation('org.springframework.boot:spring-boot-starter-web') + implementation('org.springframework.boot:spring-boot-starter-aop') implementation('com.squareup.okhttp3:okhttp:4.9.3') } diff --git a/src/main/java/ru/di9/mirror/aspect/LoggerAspect.java b/src/main/java/ru/di9/mirror/aspect/LoggerAspect.java new file mode 100644 index 0000000..c52c26d --- /dev/null +++ b/src/main/java/ru/di9/mirror/aspect/LoggerAspect.java @@ -0,0 +1,30 @@ +package ru.di9.mirror.aspect; + +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.springframework.stereotype.Component; + +@Slf4j +@Aspect +@Component +public class LoggerAspect { + + @Around("execution(* ru.di9.mirror.controller.MavenController.*(..))") + public Object logAroundMavenController(ProceedingJoinPoint joinPoint) throws Throwable { + return logAround(joinPoint); + } + + @Around("execution(* ru.di9.mirror.controller.IndexOfMavenController.*(..))") + public Object logAroundIndexOfMavenController(ProceedingJoinPoint joinPoint) throws Throwable { + return logAround(joinPoint); + } + + private Object logAround(ProceedingJoinPoint joinPoint) throws Throwable { + log.info("[ASPECT] enter {} <- {}", joinPoint.getSignature().toLongString(), joinPoint.getArgs()); + Object result = joinPoint.proceed(); + log.info("[ASPECT] exit {} -> [{}]", joinPoint.getSignature().toLongString(), result); + return result; + } +}