2013-06-10 1 views
0

저는 Sitebricks와 함께 일하고 있습니다. 그러나 크로스 커팅 작업을 가로채는 서비스를 가로채는 가장 좋은 방법은 무엇입니까? 로깅, 유효성 검사, 예외 처리는 모든 작업을 구성 요소와 같은 인터셉터에 넣습니다. 현재 내가 그렇게 같은 서비스에 AOP와 함께 그 일을하고있다 :Sitebricks 서비스 차단?

bindInterceptor(annotatedWith(Service.class), returns(only(Reply.class)), new HttpRequestFailureReportInterceptor(new MessageAcceptor() { 
      @Override 
      public void accept(String message) { 
      Logger logger = LoggerFactory.getLogger(this.getClass()); 
      logger.debug(message); 
      } 
     })); 

이 같은 작업을 수행 할 수있는 좋은 방법이 있나요? 그렇지 않다면, 왜? 이 접근법의 장점과 단점은 무엇입니까?

답변

1

확실히 강력하고 완전한 기능을 갖춘 Guice AOP를 사용하는 것이 좋습니다. Sitebricks의 목표 중 하나는 Guice를 숨기지 않고 강하게 의존하는 것입니다.

표준 방식은 실행 추적 또는 @Transactional 등의 메소드에 @Traced와 같은 주석을 사용하는 것입니다. sitebricks-persist를 사용하면 후자의 주석이 무료로 제공됩니다.

단지.

+0

댓글을 주셔서 감사합니다.하지만 요격기가 프록시 객체를 사용하기 때문에 느린 속도가 느껴지지 않습니까? 대신 사용자 필터를 사용하는 것이 좋지 않습니까? – Adelin

관련 문제