LoggerAspect > SPRINGBOOT

본문 바로가기
사이트 내 전체검색

SPRINGBOOT

LoggerAspect

페이지 정보

profile_image
작성자 관리자
댓글 0건 조회 85회 작성일 24-06-11 11:12

본문

ebca6afca3598b82ed7e1f38375f3601_1718071847_8259.png
 



[소스 내용] 

package web.aop;


import org.aspectj.lang.ProceedingJoinPoint;

import org.aspectj.lang.annotation.Around;

import org.aspectj.lang.annotation.Aspect;

import org.springframework.stereotype.Component;


import lombok.extern.log4j.Log4j2;


@Component //개발자가 직접 작성한 Class를 객체(Bean)로 등록 가능하게 하는 기능

@Aspect //AOP 설정 기능

@Log4j2 //log 사용 기능

public class LoggerAspect {


//@Around(해당 메서드 실행 전,후) : 어드바이스가 타겟 메서드를 감싸서 호출 전과 후 어드바이스 기능 수행

//execution : 포인트컷 표현식으로 적용

//web.. : ..의 의미는 0개 이상 뜻, 파라미터, 메서드, 패키지 등 모든 것을 의미 

@Around("execution(* web..controller.*Controller.*(..)) or "

+ "execution(* web..service.*Impl.*(..)) or "

+ "execution(* web..mapper.*Mapper.*(..))")

public Object logPrint(ProceedingJoinPoint joinPoint) throws Throwable {

String type = "";

String name = joinPoint.getSignature().getDeclaringTypeName();


//indexOf(String str) : 발견되는 인덱스 값을 반환한다. 찾지 못하면 -1 반환한다.

if(name.indexOf("Controller") > -1) {

type = "=== Controller : ";

}else if(name.indexOf("Impl") > -1) {

type = "=== Impl : ";

}else if(name.indexOf("Mapper") > -1) {

type = "=== Mapper : ";

}


log.debug(type + name + "." + joinPoint.getSignature().getName() + "()"); //콘솔 출력


return joinPoint.proceed();

}

}


댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

공지사항
자유게시판
질문답변
1:1문의

 

별명 : 터푸가위
주소 : 부산시 동래구 명장로20번길 90
대표 : 박규태
메일 : dancepkt@******.com

접속자집계

오늘
412
어제
217
최대
10,760
전체
276,159
Copyright © dancePKT . All rights reserved.