'POJO 기반 AOP - AspectJ 표현식'에 해당되는 글 1건

  1. 2012.06.22 POJO 기반 AOP - AspectJ 표현식

POJO 기반 AOP - AspectJ 표현식

1. AspectJ에서 지원하는 패턴 표현식
2. 스프링은 메서드 호출관련 명시자만 지원

명시자(pattern)
-? 는 생략 가능

3. 명시자
 - execution : 메소드 명을 기준으로 지정
 - within : 타입 명을 기준으로 지정(class 기준)
 - bean : 설정파일에 지정된 빈의 이름(name속성)을 이용해 지정. 2.5버전에 추가됨.(bean설정 기준)

4. 표현

명시자(패턴)
- 패턴은 명시자 마다 다름.
예) execution(public * abc.def..*Service.set*(..)

5. 패턴문자.
 - * : 1개의 모든 값을 표현
   - argument에서 쓰는 경우 :  1개의 argument
   - package에 쓰인 경우 : 1개의 하위 package
   - 이름(메소드, 클래스)에 쓰일 경우 : 모든 글자들
 
 - .. : 0개 이상
   - argument에서 쓰인 경우 :  0개 이상의 argument
   - package에 쓰인 경우 : 0개 이상의 하위 package

6. execution
 - execution(수식어패턴? 리턴타입패턴 패키지패턴?.클래스명패턴.메소드패턴(argument패턴))
 - 수식어패턴 : public, protected, 생략
 - argument에 type을 명시할 경우 객체 타입은 fullyName으로 넣어야 한다.
   - java.lang은 생략가능
 - 위 예 설명
  적용 하려는 메소드들의 패턴은 public 제한자를 가지며 리턴 타입에는 모든 타입이 다 올 수 있다. 이름은 abc.def 패키지와 그 하위 패키지에 있는 모든 클래스 중 Service로 끝나는 클래스들 에서 set을 시작하는 메소드이며 argument는 0개 이상 오며 타입은 상관없다.

7. within
 - within(패키지패턴.클래스명패턴)

8. bean
 - bean(bean이름 패턴)

Posted by 조은성
,