1. 기본 개념
SAGONJ는 SAPER 프로그래밍을위한 Java 기반 구현입니다. 그것은 Java에 새로운 Join Point 개념을 추가하지만 실제로는 기존 Java 개념의 이름 일뿐입니다. Java 언어에 몇 가지 새로운 구조를 추가합니다 : Pointcut, Notification (조언), 유형 간 선언 (유형 간 선언) 및 측면 (측면). 기울기 및 알림은 프로그램 흐름에 동적으로 영향을 미치며, 유형 간 선언은 프로그램의 정적 계층 계층 구조이며, 탄젠트는 이러한 모든 새로운 구조의 캡슐화입니다.
섹션, 연결 지점, 탄젠트 포인트 및 알림을 기반으로하는 개념은 다음과 같습니다.
측면 : 측면 선언은 Java의 클래스 선언과 유사하며, 측면에서 어떤 점수와 해당 조언이 포함되어 있습니다.
공동 점 : 프로그램에서 명확하게 정의 된 지점을 나타냅니다. 일반적으로 메소드 호출, 클래스 멤버에 대한 액세스 및 예외 처리 프로그램 블록의 실행 등이 포함됩니다.
Pointcut : 공동 포인트 그룹은 논리적 관계를 통해 결합되거나 와일드 카드, 정규식 등을 통해 집중됩니다.
조언 : 조언은 Pointcut에 정의 된 프로그램 지점에 의해 수행되는 특정 작업을 정의합니다.
연결 지점은 프로그램 흐름에서 적절한 지점입니다. 탄젠트는 특정 연결 지점 세트 와이 지점의 값을 수집합니다. 알림은 연결 지점이 도착했을 때 실행되는 코드이며, 이들은 SAGONTJ의 동적 부분입니다. 실제로 연결 지점은 프로그램의 진술과 같으며 탄젠트 포인트는 특정 문서에서 설정된 중단 점이며, 이는 중단 점에서 프로그램 스택에 대한 정보를 수집합니다. 이 중단 점. 프로그램 프로그램. SAGONTJ에는 여러 가지 유형의 유형 간 선언이 있으며,이를 통해 프로그래머는 정적 구조, 이름, 클래스 멤버 및 클래스 간의 관계를 수정할 수 있습니다. 측면 측면은 초점을 크로스 컷하는 모듈 장치입니다. 그들의 행동은 Java의 클래스와 유사하지만 포인트 절단, 알림 및 유형 간 선언을 캡슐화합니다.
2. AJDT : AspectJ Development Tools를 기반으로 AOP 프로그램을 개발하는 방법은 무엇입니까?
eclipse http://www.eclipse.org/ajdt/에 AJDT 플러그인을 설치하려면 AJDT 웹 사이트의 지침에 따라
AspectJ 프로젝트 프로젝트를 만듭니다
코드 개발 수행 (이 기사는 간단한 예를 제공합니다)
3. 간단한 예 :
코드 사본은 다음과 같습니다.
패키지 AOP.test;
공개 인터페이스 그림 수수 {
공개 void setxy (int x, int y);
공개 void draw ();
}
코드 사본은 다음과 같습니다.
패키지 AOP.test;
공개 클래스 포인트를 구현하는 {
공개 INT X;
개인 in y;
public int getx () {
반환 x;
}
공개 문자열 setx (int x) {
System.out.println ( "set x value : x ="+x);
this.x = x;
반환 "리턴 값은 x ="+x입니다.
}
public int gety () {
반품 Y;
}
공개 void sety (int y) {
this.y = y;
}
공개 포인트 () {
}
공개 포인트 (int x, int y) {
this.x = x;
this.y = y;
}
@보수
public void setxy (int x, int y) {
this.x = x;
this.y = y;
System.out.println ( "Point SetXy : x ="+x+", y ="+y);
}
@보수
public void draw () {
System.out.println ( "포인트 드로우");
}
@보수
공개 문자열 tostring () {
"포인트 : x ="+x+", y ="+y;
}
}