백기선 AOP - accidentlywoo/legacyVue GitHub Wiki

AOP

Aspect Oriented Programming

class A{
 method a(){
  AAAA
  오늘은 7월 4일 미국 독립 기념일이래요.
  BBBB
 }
 method b(){
  AAAA
  저는 아침에 운동을 다녀와서 밥먹고 빨래를 했습니다.
  BBBB
  }
}
class B(){
 method c(){
  AAAA
  점심은 이거 찍느라 못먹었는데 저녁엔 제육볶음을 먹고 싶네요.
  BBBB
 }
}

모아놓은 AAAA BBBB

class A{
 method a(){
  오늘은 7월 4일 미국 독립 기념일이래요.
 }
 method b(){
  저는 아침에 운동을 다녀와서 밥먹고 빨래를 했습니다.
 }
}
class B(){
 method c(){
  점심은 이거 찍느라 못먹었는데 저녁엔 제육볶음을 먹고 싶네요.
 }
}
class AAAABBBB{
 method aaaabbbb(JoinPoint point){
  AAAA
  point.execute()
  BBBB
 }
}

다양한 AOP 구현방법

    • 컴파일 A.java --(AOP)---> A.class(AspectJ)
    • 바이트코드 조작 A.java -> A.class --(AOP)--> 메모리(AspectJ)
    • 프록시 패턴 (스프링 AOP)

프록시 패턴