반응형
AOP 에서 classname 을 얻는 방법은 간단합니다.
처음에 Proxy name 을 가져와서 조금 찾아보다가 다음에 잊어버리지 않기 위해 정리해봅니다.
@Around("controllerPointcut()")
public Object ctrlAround(ProceedingJoinPoint joinPoint) throws Throwable {
String className = joinPoint.getSignature().getDeclaringTypeName();
String simpleClassName = className.substring(className.lastIndexOf(".") + 1);
String methodName = joinPoint.getSignature().getName();
String title = simpleClassName + "." + methodName;
long startMillis = System.currentTimeMillis();
LoggerFactory.getLogger(title).info("[START]");
// 메서드 실행
Object rtn = joinPoint.proceed();
LoggerFactory.getLogger(title).info("[END] {} ms", (System.currentTimeMillis() - startMillis));
return rtn;
}
위 코드에서와 같이 joinPoint.getSignature().getDeclaringTypeName() 을 통해 전체 package 경로를 받아 온 후 substring을 통해 뒤에만 잘라서 사용 하면 됩니다.
메소는 명은 별도로 getSignature().getName()을 통해서 얻을 수 있습니다.
반응형
'프로그래밍' 카테고리의 다른 글
Clickhouse - 다른 Clickhouse 서버의 table을 현재 서버로 복사하기 (0) | 2024.09.10 |
---|---|
JWT Token 생성 - Java and Javascript (0) | 2024.09.10 |
Javascript Network visual 라이브러리 정리 (0) | 2024.06.10 |
도커(docker) 로 Clickhouse db 설치하기 (0) | 2024.03.14 |
Java11 에서 JDBC Jar file을 동적 로딩하는 방법 (0) | 2023.06.14 |