Java 동적 에이전트 AOP 구현

현재 전체 개발 커 뮤 니 티 에서 AOP(Aspect Oriented Programing)를 숭배 하고 AOP 를 지원 하 는 우수한 프레임 워 크,즉 Spring,JAC,Jboss AOP 등 이 대량으로 등장 하고 있다.AOP 는 한때 트 렌 드 가 된 것 같다.자바 초보 자 들 은 OOP 가 아직 배우 지 못 했 는데 또 AOP 에 왔 다 는 감개 를 금치 못 했다.본 고 는 이론 적 으로 AOP 가 무엇 인지,왜 AOP 를 진행 해 야 하 는 지 를 구체 적 으로 논술 하고 자 하 는 것 이 아니다.AOP 를 배우 면 고향 에 갈 수 있다 는 것 을 자세히 알 아야 한다.http://aosd.net가 봐.여 기 는 단지 간단 한 예 를 통 해 초보 자 에 게 어떻게 AOP 를 진행 하 는 지 보 여 주 려 는 의도 일 뿐이다.간단하게 보기 위해 예 는 제3자 의 AOP Framework 를 사용 하지 않 고 자바 언어 자체 가 가지 고 있 는 동적 에이전트 기능 을 이용 하여 AOP 를 실현 하 는 것 이다.우 리 는 먼저 AOP 자체 로 돌아 가 AOP 는 주로 로그 기록,성능 통계,안전 통제 에 응용 된다.사무 처리 등 방면.그것 의 주요 의 도 는 로그 기록,성능 통계,안전 제어 등 코드 를 상업 논리 코드 에서 명확 하 게 구분 해 야 한다.우 리 는 이러한 행 위 를 시스템 이 해결 해 야 할 문제 로 볼 수 있다.바로 문 제 를 대상 으로 하 는 프로 그래 밍(AOP 를 문 제 를 대상 으로 하 는 프로 그래 밍 이 타당 하지 않 은 지 모르겠다)이다.이러한 행위 에 대한 분 리 를 통 해 우 리 는 그것들 을 상업 방법 에 독립 적 으로 배치 할 수 있 기 를 희망 하 며,이러한 행 위 를 바 꾸 려 면 상업 방법 코드 에 영향 을 줄 필요 가 없다.시스템 이 일련의 Business Object 에 의 해 업무 논리 기능 을 완성 한다 고 가정 하면 시스템 은 모든 업무 논리 처리 시 로그 기록 을 해 야 합 니 다.여기 서 우 리 는 구체 적 인 업무 논리 코드 를 생략 합 니 다.  public interface BusinessInterface {   public void processBusiness();   }   public class BusinessObject implements BusinessInterface {   private Logger logger = Logger.getLogger(this.getClass().getName());   public void processBusiness(){   try {    logger.info("start to processing...");    //business logic here.    System.out.println(“here is business logic”);    logger.info("end processing...");   } catch (Exception e){    logger.info("exception happends..."); //exception handling}}상업 논리 코드 와 로그 기록 코드 를 혼합 하여 향후 유지 에 어느 정도 어려움 을 가 져 오고 대량의 코드 중복 을 가 져 올 수 있 습 니 다.똑 같은 로그 코드 는 시스템 의 모든 비 즈 니스 Object 에 나타 납 니 다.

좋은 웹페이지 즐겨찾기