springAOP 에서 joinpoint 로 접점 방법의 매개 변 수 를 가 져 옵 니 다.
개념:
대상 에 접근 하 는 방법 은 joint point(@around 용 poceeding joint point)입 니 다.
1.테스트 와 같은 대상 정 보 를 가 져 옵 니 다.component@80387a이런
2.[Ljava.lang.Object;@183 cfe 9(물론 대상 의 arrays.toString()방법 으로 복원 할 수 있 습 니 다)
3.또한 String test.coponent.test 1(String)과 같은 강 화 된 방법 도 얻 을 수 있 습 니 다.
요약:방문 목표 방법 파라미터,세 가지 방법(실제 네 가지,먼저 세 가지)이 있 습 니 다.
joinpoint.getargs():파 라 메 터 를 가 져 옵 니 다.
주:구성 요소 에서 test 방법의 인 자 를 가 져 오 는 것 입 니 다.test 방법 에 여러 개의 인자 가 있 으 면 이 방법 은 여러 개의 인 자 를 되 돌려 줍 니 다.원 하 는 것 은 for 순환 과 판단 을 통 해 선별 합 니 다.
2.joinpoint.getTarget():대상 정보 얻 기
3.joinpoint.getSignature():(signature 는 신호,표지 의 뜻):강 화 된 방법 과 관련 된 정 보 를 얻 습 니 다.그 후속 방법 은 두 가지 가 있 습 니 다.
getDeclaring TypeName:방법 이 있 는 가방 이름과 클래스 이름 을 되 돌려 줍 니 다.
getname():방법 명 을 되 돌려 줍 니 다.
코드 를 보 세 요!
구성 요소 클래스
@Component
public class component {
public void test() {
}
public void test1(String name2) {
}
}
@afterreturning 을 예 로 들 어 설명 하 겠 습 니 다.3 Signature 방법 을 먼저 보도 록 하 겠 습 니 다.
@AfterReturning(value="execution(* test.*.*(..))",returning="name2")
private void test1(JoinPoint jp ,String name2) {
System.out.println(jp.getSignature());
System.out.println(jp.getSignature().getName());
System.out.println(jp.getSignature().getDeclaringTypeName());
}
Signature 방법 에서 의 출력 결과거봐,
getSignature());이러한 정 보 를 얻 었 습 니 다:수정자+패키지 이름+구성 요소 이름(클래스 이름)+방법 명
getSignature().getName()); :방법
getSignature().getDeclaringTypeName():패키지 이름+구성 요소 이름(클래스 이름)
우리 1 getargs()더 보 자.
System.out.println(jp.getArgs());
System.out.println(Arrays.toString(jp.getArgs()));
결과 출력jp.getArgs():한 그룹의 배열 대상 을 알 수 없 는 대상 을 얻 을 수 있 습 니 다.그러나 우 리 는 이것 이 대상 이라는 것 을 알 고 있 습 니 다.매개 변수 대상 인 Arrays.toString(jp.getArgs()을 알 고 있 습 니 다.그러나 우 리 는 Arrays 클래스 에서 배열 문자열 을 바 꾸 는 방법:arrays.tostring(지정 한 배열 내용 을 문자열 로 표시 합 니 다)을 사용 하면 구체 적 인 숫자 를 얻 을 수 있 습 니 다.
3.getTarget()방법:이 방법 은 증강 처 리 된 대상 을 되 돌려 줍 니 다.(이것 은 getthis()방법 과 비슷 하지만 나 온 값 은 같 지 않 습 니 다)
System.out.println(jp.getTarget());
출력 결과매개 변수 도 관련 정보 도 아 닌 실제 대상 이다.
요약:이상 은 목표 방법의 매개 변 수 를 방문 하 는 모든 방법(getthis()을 제외 하고 사실은 한 대상 이 생 성 한 프 록 시 대상 을 되 돌려 주 는 것 입 니 다.
얻 은 대상 은 gettarget()방법 과 비슷 해서 거의 똑같다 고 할 수 있 습 니 다.그러나 저 는.eqauls 와==이 같 지 않 습 니 다)이런 방법 을 사용 한 적 이 있 습 니 다.document(dom)프로 그래 밍 의 가 져 온 요소 document.getelement by id()가 생각 납 니 다.이 요 소 를 가 져 오 면 자신의 코드 가 다른 지 수정 하거나 관찰 할 수 있 습 니 다.
JoinPoint 를 사용 하여 알림 방법 인 자 를 가 져 오고 알림 방법 에 전달 합 니 다.
현재 알려 진 방법 에 접근 하 는 대상,대리 대상,방법 파라미터 등 데 이 터 를 제공 합 니 다.
package org.aspectj.lang;
import org.aspectj.lang.reflect.SourceLocation;
public interface JoinPoint {
String toString(); //
String toShortString(); //
String toLongString(); //
Object getThis(); // AOP
Object getTarget(); //
Object[] getArgs(); //
Signature getSignature(); //
SourceLocation getSourceLocation();//
String getKind(); //
StaticPart getStaticPart(); //
}
서 라운드 알림 에 사용 되 며,proceed()방법 으로 목표 방법 을 실행 합 니 다.
public interface ProceedingJoinPoint extends JoinPoint {
public Object proceed() throws Throwable;
public Object proceed(Object[] args) throws Throwable;
}
알림 방법 서명,연결 점 형식 등 연결 점 의 정적 부분 에 접근 합 니 다.
public interface StaticPart {
Signature getSignature(); //
String getKind(); //
int getId(); //
String toString(); //
String toShortString(); //
String toLongString(); //
}
특별 설명:JoinPoint 는 첫 번 째 인자 여야 합 니 다.이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
springAOP 에서 joinpoint 로 접점 방법의 매개 변 수 를 가 져 옵 니 다.주:구성 요소 에서 test 방법의 인 자 를 가 져 오 는 것 입 니 다.test 방법 에 여러 개의 인자 가 있 으 면 이 방법 은 여러 개의 인 자 를 되 돌려 줍 니 다.원 하 는 것 은 for 순환 과 판단...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.