ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Spring AOP
    개발 2020. 11. 30. 15:03

    Aspect-Oriented Programming (AOP)는 OOP를 보완하는 수단, 흩어진 Aspect를 모듈화 할 수 있는 프로그래밍 기법.

    흩어진 관심사 (Crosscutting Concerns)

    Concern = 여러 클래스에서 비슷하게 나타나는 코드들을 뜻한다.

    ex) 트랜잭션.

    여러 클래스에서 비슷하게 나타나는 코드나 메소드를 Aspect로 모듈화 시켜 중복을 제거한다.

    AOP를 적용하면 다음과 같은 모습이다.

    Aspect는 하나의 모듈, 모듈화 시킨 거임

    모듈안에 Adivce(해야할 일들), Pointcut(어디에 적용 되어야 할지 정보), target(적용이 되는 대상) 값이 저장되어 있다.

    Join Point (메서드 호출, 메서드 실행 시점에 Advice를 끼어들게 할 수 있는 지점에 대한정보)

     

    AOP 적용 방법

    • Compile time - java file을 class file로 만들 때 바이트코드를 조작해서 만드는 방법.
    • Loading time - Compile은 순수하게 완료 하고, class file을 loading하는 시점에서 load data를 변경하는 방법(위빙? 낑겨 넣는다?)
    • Run time

    AOP 구현체

    • AspectJ
    • Spring AOP

     

    '개발' 카테고리의 다른 글

    Rest API ?  (0) 2020.12.03
    이것저것 공부한거 (Proxy, Transaction)  (0) 2020.11.30
    Spring 기초  (0) 2020.11.28
    Servlet?  (0) 2020.10.23
    WAS ?? Class Loader?  (0) 2020.10.23
Designed by Tistory.