2014-10-05 4 views
1

현재 스프링 @Controllers에서 발생하는 예외를 로그하는 "AspectLogger"클래스가 있습니다. AspectJ 구문을 사용하여 원시 스프링 AOP를 사용하고 있습니다. 컨트롤러 방법은 프론트 엔드에서 요청하고 처리 할 수없는 @RequestMapping이없는 경우Aspects를 사용한 누락 된 REST 메소드 로깅

@Before("(restController() || controller()) && publicMethod()") 
public void logBefore(final JoinPoint joinPoint) throws IOException { 
    ... 

, 나는 너무이 경우를 기록합니다.

주석을 사용하면 어떻게해야합니까? 나는 이것을 처리하기 위해 네이티브 Spring 클래스 중 하나 이상의 aspect를 생성 할 필요가있을 것이라고 생각한다.

답변

0

내가 아는 한, 대부분의 Spring 메소드 (이 목적을 위해 AspectJ로 인터셉트해야 함)는 보호되거나 개인용이지만 AspectJ는 public 메소드에만 사용된다. 다른 해결 방법은 클래스에 TRACE 로그 수준을 사용하고 있습니다. 당신은 단지 기록하기를 원하기 때문에이 옵션을 알려주고 싶습니다.

+0

logBefore() 메서드에서 실제로 지원하기 위해 전자 메일을 보내고 있으므로 간단한 TRACE 로깅을 사용할 수 없습니다. 내가 이해하고 있듯이 어쨌든 반영을 통해 액세스되기 때문에 개인 또는 보호 된 메서드를 한 측면에서 래핑하는 데 아무런 문제가 없습니다. – jax

+0

docs에 따라 공용 메서드 만 차단합니다. 참고 : http://docs.spring.io/spring/docs/current/spring-framework-reference/html/aop.html#aop-pointcuts-designators –

+0

권리. – jax