Spring AOP 설정 의 @ PointCut 문법
8526 단어 #Spring응용 프레임 워 크
@ Pointcut 은 절 점 표현 식 으로 정의 하거나 &, | | 과!라 는 식 으로 조합 했다.
절 점 식
1. execution
Spring 절단면 입도 가 가장 작은 것 은 방법 등급 이기 때문에 execution 표현 식 은 유형, 유형, 방법 명, 매개 변수 명 등 방법 과 관련 된 부품 을 명확 하 게 지정 하 는 데 사용 할 수 있 으 며, Spring 에 서 는 대부분 AOP 를 사용 해 야 하 는 업무 장면 도 방법 등급 에 만 도달 하면 되 기 때문에 execution 표현 식 을 사용 할 때 가장 광범 위 하 다. 문법 (물음표 표시 선택 가능):
execution(modifiers-pattern? ret-type-pattern declaring-type-pattern?name-pattern(param-pattern) throws-pattern?)
다음은 execution 표현 식 의 예 입 니 다.
execution(public * com..controller.*.insert*(..) java.lang.Exception)
이 절 점 표현 식 은 come.. contrller 의 모든 클래스 에 일치 합 니 다. 방법 장식 부 호 는 Public 의 임 의 반환 값 이 며, insert 를 접두사 이름 으로 Exception 이상 유형 을 던 지 는 방법 입 니 다.이 예 는
..
와 *
마스크 를 사용 했다.*
어댑터: 이 어댑터 는 주로 여러 문자 와 일치 하 는 데 사 용 됩 니 다...
어댑터: 이 어댑터 는 0 개 이상 의 항목 을 표시 합 니 다. 주로 declaring - type - pattern 과 param - pattern 에 사 용 됩 니 다. declaring - type - pattern 에 사 용 될 경우 현재 가방 과 하위 가방 이 일치 하 는 것 을 표시 합 니 다. param - pattern 에 사 용 될 경우 0 개 이상 의 인 자 를 표시 합 니 다.+
: 지정 한 유형의 하위 형식 과 일치 합 니 다.형식 모드 뒤에 접미사 로 만 놓 을 수 있 습 니 다.java. lang. Number + java. lang 가방 에 있 는 모든 Number 의 자체 형식 과 일치 합 니 다.java. lang. Integer 와 일치 하면 java. math. BigInteger 2. within
within 표현 식 의 입 도 는 클래스 입 니 다. 클래스 를 제한 하 는 데 사 용 됩 니 다. (어댑터 를 사용 할 수 있 습 니 다) 현재 표현 식 과 일치 하 는 모든 클래스 를 표시 합 니 다. 문법:
within(declaring-type-pattern)
예 를 들 어 아래 표현 식 은 com. spring. xxx. service 패키지 와 하위 패키지 의 모든 종 류 를 표시 합 니 다.
within(com.spring.xxx.service..*)
3. this 와 target
this 표현 식 은 대상 이 프 록 시 에 의 해 생 성 된 프 록 시 대상 이 지정 한 형식 과 일치 해 야 차단 된다 는 것 을 나타 낸다.target 표현 식 은 대상 이 지정 한 형식 이 어야 차단 된다 는 것 을 나타 낸다.이로써 알 수 있 듯 이 this 는 대리 대상 에 작용 하고 target 은 목표 대상 에 작용 한다. 매 워 요? 목표 대상 과 대리 대상 이 뭐 예요?Spring 절단면 프로 그래 밍 에서 목표 대상 은 업무 논리 대상 이 고 대 리 는 업무 논리 에 대한 패 키 징 을 사용 하여 생 성 된 대상 입 니 다.JDK 동적 에이 전 트 를 사용 하면 대상 과 에이 전 트 는 두 개, CGLib 에이 전 트 는 한 개 대상 이다.대리 에 관 해 서 는 을 참고 할 수 있다. Spring 에서 this 는 에이전트 대상 을 지정 한 유형의 클래스 로 매 칭 하고 target 은 업무 대상 을 지정 한 유형의 클래스 로 매 칭 합 니 다.예 는 다음 과 같다.
this(com.spring.service.BaseService)
target(com.spring.service.BaseService)
4. args(paramType)
args 표현 식 의 역할 은 지정 한 매개 변수 형식 과 수량 에 맞 는 방법 입 니 다. 클래스 경로 나 어떤 방법 이름 이 든 간 에.... 어댑터 를 사용 할 수 있 습 니 다. * 를 사용 할 수 없습니다.다음 표현 식 은 첫 번 째 매개 변 수 는 자바. lang. string 이 고 그 다음 에 임의의 매개 변수 가 될 수 있 는 방법 을 나타 낸다.
args(java.lang.String,..)
5. @within(annotationType)
주 해 를 잘 싸 야 하 는 클래스 의 모든 연결 점 을 지정 합 니 다. 대상 을 호출 하 는 임의의 방법 이 차단 되 어 있 습 니 다.
6. @target(annotationType)
대상 과 일치 하 는 클래스 는 지정 한 주 해 를 포함 하고 있 으 며, 대상 을 호출 하 는 임의의 방법 은 차단 된다. @target 과 @ within 의 차이 점
7. @annotation(annotationType)
지정 한 주해 가 있 는 방법 과 일치 합 니 다. 호출 된 방법 은 지정 한 주 해 를 포함 합 니 다.
8. @args(annotationType)
방법 매개 변수 가 속 한 유형 에 지정 한 주석 이 있 습 니 다.메모: 방법 매개 변수 가 속 한 유형 에 지정 한 주석 이 있 습 니 다. 방법 매개 변수 에 주석 이 있 는 것 이 아 닙 니 다.
@args(com.spring.aop.jargs.annotation.Anno1)
@args(com.spring.aop.jargs.annotation.Anno1,com.spring.aop.jargs.annotation.Anno2)
@args(com.ms.aop.jargs.demo2.Anno1,..)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Rails Turbolinks를 페이지 단위로 비활성화하는 방법원래 Turobolinks란? Turbolinks는 링크를 생성하는 요소인 a 요소의 클릭을 후크로 하고, 이동한 페이지를 Ajax에서 가져옵니다. 그 후, 취득 페이지의 데이터가 천이 전의 페이지와 동일한 것이 있...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.