2017-02-23 11 views
0

JavaEE 응용 프로그램의 디버깅 (성능, 메서드 사용 로깅 등)에 사용되는 인터셉터가 있습니다.런타임시 인터셉터를 사용/사용하지 않음

프로덕션 시스템에서는 기본적으로 이러한 인터셉터를 활성화하지 않지만 런타임에 활성화 할 수있는 가능성을 원합니다 (재배포하지 않고). CDI 구현의 독립형을 수행 할 수있는 이식 가능한 방법이 있습니까? 그렇지 않다면, 이것을 수행하는 WELD 방식이 있습니까?

유일한 해결책은 해당 인터셉터에서 사용해야하는 글로벌 플래그이지만 인터셉터에 들어가서 플래그를 아무 것도 평가하지 않는 오버 헤드가 있습니다.

답변

1

이것은 CDI/Weld가 부트 스트랩 할 때 수행하는 작업 중 하나입니다. 예 : 인터셉터의 경우 효과적으로 인터셉터에 대한 추가 작업을 처리 할 "래핑 프록시"를 만들어야합니다. 따라서 대답은 - 입니다. 런타임에는이를 수행 할 수 없습니다.

그러나 플래그의 종류를 사용한 접근은 완벽합니다. 인터셉터 프록시 (아무 것도하지 않음)를 가지고있는 오버 헤드는 정말로 너무 작아서는 안됩니다. 아마이 방법을 사용하겠습니다.

+0

좋아요, 그러면 제 초기 솔루션을 사용하겠습니다. 감사. – grubi