2011-08-26 3 views
1

(아마도 AOP 또는 주석을 사용하여) 기존 기능을 확장 할 수있는 가장 좋은 방법은 무엇입니까? 내가 찾고있는 시나리오가 있습니다.AOP 또는 주석을 사용하여 서비스 기능 확장하기

우리는 하나의 서비스가 일부 유효성 검사를 수행 한 다음 Employee에 대한 액세스를 비활성화하는 Employee 엔티티를 사용하는 DisableEmployee라고 말합니다. 특정 고객의 경우 DisableEmployee가 액세스를 비활성화 할뿐만 아니라 페널티 포인트를 부과하는이 기능을 확장하고자합니다.

한 가지 방법은 기본 클래스를 확장 한 다음 추가 기능을 추가하는 것입니다.

여기에서 AOP 및 주석을 사용하는 것이 가능합니까 (또는 권장 할 만합니까). 어디에서 내 DisableEmployee 주석을 달고 컴파일 시간에 클래스에 추가 코드를 짜 넣습니다. (aspect 사용) 저는 APT와 Velocity에 대해 읽었습니다. 우리가 엔티티 클래스를 확장해야 할 수도 있기 때문에 APT를보고있는 이유는 새로운 속성을 추가하기 위해서입니다.

+0

Constantiner가 추가 한 "aspectj"태그가 있습니다. 논리적으로이 추가는 올바르지 않습니다. 왜냐하면 AspectJ는 많은 다른 것들 중에서 AOP 구현 일 뿐이 기 때문입니다. 그러나 실질적으로 나는 그의 선택에 동의한다 (나의 대답을 보라). – alehro

답변

0

사전에

이 방법을 갖는 아이디어는 우리가 크로스 커팅 기능의 형태로 서비스 확장 분류 할 수 있는지 확인하는 것입니다

(전통 로깅, 감사 등이 ....)

주셔서 감사합니다 질문은 신뢰할 수있는 답변을 얻기에는 너무 일반적입니다. 그러나 지금은 AspectJ에서 구현할 수없는 것을 볼 수 없다.

관련 문제