spring boot 프로젝트 설정 AOP 로그 절단면
6888 단어 spring-bootSpring부츠 실전 학습
maven 의존 도입
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-aopartifactId>
dependency>
AOP 절단면 설정 클래스
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.Arrays;
/**
*
*/
@Aspect
@Component
public class LogAspect {
private final static Logger logger = LoggerFactory.getLogger(LogAspect.class);
@Pointcut("execution(public * cn.test.controller.*.*(..))")
public void webLog() {
}
@Before("webLog()")
public void deBefore(JoinPoint joinPoint) throws Throwable {
// ,
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
HttpSession session = request.getSession();
String username = (String) session.getAttribute("username");
//
logger.info("USERNAME : " + username);
logger.info("IP : " + request.getRemoteAddr());
logger.info("URL : " + request.getRequestURL().toString() + " HTTP_METHOD : " + request.getMethod());
logger.info("CLASS_METHOD : " + joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName());
logger.info("INPUT ARGS : " + Arrays.toString(joinPoint.getArgs()));
}
/*@AfterReturning(returning = "ret", pointcut = "webLog()")
public void doAfterReturning(Object ret) throws Throwable {
// ,
logger.info(" : " + ret);
}
//
@AfterThrowing("webLog()")
public void throwss(JoinPoint jp) {
logger.info(" .....");
}
// ,final ,
@After("webLog()")
public void after(JoinPoint jp) {
logger.info(" .....");
}
// , , MethodInterceptor
@Around("webLog()")
public Object arround(ProceedingJoinPoint pjp) {
logger.info(" start.....");
try {
Object o = pjp.proceed();
logger.info(" proceed, :" + o);
return o;
} catch (Throwable e) {
e.printStackTrace();
return null;
}
}*/
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Keycloak이 Active Directory에 등록된 사용자로 인증할 수 있도록 합니다.사내 시스템을 출시함에 있어서, 전회사에서는 Web시스템마다 로그인하고 있어 혐오가 있었으므로, 꼭 싱글 사인온으로 하고 싶다고 생각했다. 그 실현에, 옛날 조금만 평가한 OpenAM라든지의 정보를 구구어 낚시하기 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.