AOP

구름코딩·2020년 10월 13일
0

관점 지향 프로그램 Aspect Oriented Program

예시

class A {
	private void a() {
		dothisA();
		System.out.println("this A mothod");
		dothisB();
	}
}
class B{
	private void b(){
		dothisA();
		System.out.println("this B mothod");
		dothisB();
	}
}
class C{
	private void c(){
		dothisA();
		System.out.println("this C mothod");
		dothisB();
	}
}

위와 같은 형태의 중복되는 dothisA(), dothisB()의 실행을 따로 모아서 실행하는 방식으로 변경하는 것

class A {
	private void a() {
		System.out.println("this A mothod");
	}
}
class B{
	private void b(){
		System.out.println("this B mothod");
	}
}
class C{
	private void c(){
		System.out.println("this C mothod");
	}
}

class abc {
	private void abc(JoinPoint point){
		dothisA();
		point.execute();
		dothisB();
	}
}

AOP구현 방법

  • 컴파일 A.java ----(AOP)---> A.class (AspectJ)
  • 바이트코드 조작 A.java -> A.class ---(AOP)---> 메모리 (AspectJ)
  • 프록시 패턴 (스프링 AOP)
profile
내꿈은 숲속의잠자는공주

0개의 댓글