ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Spring(AOP, 관점지향 프로그래밍)
    Spring(전자정부 프레임 워크) 2020. 7. 22. 10:16

    관점지향 프로그래밍(AOP : Aspect Oriented Programming)

     

    a, b, c라는 클래스에서 공통된 코드를 외부로 빼놓고 필요할때 가져다 쓰는 것

     

    장점

     

     - 중복 코드 제거

     

     - 수정, 삭제, 추가 시 추출된 코드만 대상으로 하면 됨.

     

    관련 키워드

     

        Advice : 언제. 무엇을. 어떤 공통모듈을 어떤 시점(컴파일시|로딩시|생성시|함수호출시|전역변수 값설정/취득시)에 
                     

                   어디에 주입할것인지를 결정함.

     

                   (분리된 코드를 언제 어디서 쓸지 결정)


        JoinPoint : 어디에. 공통모듈을 어디에 주입할것인지를 결정함. (분리하기 전 해당 코드가 위치했던 장소)


        PointCut : JoinPoint들의 팩키지. (분리된 코드가 있던 클래스들을 가리키는 명칭)


        Weaving : Advice를 PointCut에 주입시키는 행위. (공통 코드를 실행하는 행위)


        Aspect : 공통모듈 , 분리된 코드

     

     

    ??

     

    메소드 한개가 joinPoint

     

    모인게 PointCut

     


     

    PointCut을 만들기 위해 사용 하는 함수

     

    1 execution() - PointCut 표현식 정의(pointcut 설정된 위빙 대상을 런타임시 감지해 동작)

     

    1.2 call() - PointCut 표현식 정의(미리 pointcut 설정된 위빙 대상을 stack frame에 저장하고 동작)

     

    3. within(패키지명 또는 인터페이스 또는 클래스) - 

     


     2.1 execution(접근지정자[생략가능] 반환타입[Wrapper형태,생략가능]

     

          팩키지[생략가능].클래스[생략가능].함수명[생략가능](파라메터1,...[Wrapper or wildcard형태])

     

     

    댓글

Designed by Tistory.