개발자 끄적끄적

AOP 작업 본문

Spring

AOP 작업

햏치 2023. 3. 4. 01:01

<AOP>

Aspect Oriented Programming(관점지향 프로그래밍)
- 관점 : 프로젝트 전체에서 주요 관심사항(로그출력, 로그인여부)
- 주요 관심사항이 프로젝트 여러곳에 존재한다 => 횡단적 관심사
- 관심사의 분리 : 관리자에게만 CRUD(select, update, delete, insert)를 부여
                       즉, '관리자인가 체크' 를 '분리' 하는 것

- AOP에서 사용하는 용어
  - Aspect : 공통 핵심사항(관점, 횡단적 관심사)
  - Weaving : 분리된 관심사를 지정된 위치에서 실행주는 행위
  - Advice(시간적 개념) : Before Advice, After Returning Advice, Around Advice
                                즉, Weaving하는 시점
  - JoinPoint(공간적 개념) : 어떤 메서드에 Aspect를 적용할 것인가
    - Pointcut의 묶음
    - Pointcnt : 적용될 지정
  - Advisor : Spring에서만 사용하는 개념
    - Advice + Pointcut

- AOP 작업(Spring에서 지원하는 Frame)
  - step1. AOP를 사용하지 않은 경우 
  - step2. POJO 형태로 AOP를 구현한 경우
  - step3. Spring의 AOP를 사용한 경우
    - AspectJ 라이브러리를 pom.xml에 추가(weaver, rt)
    - SpringApplication에서 aspectj 라이브러리를 활성화
      - @EnableAspectJAutoProxy
    - config 파일에서 AOP 지정
 
//execution(접근자 반환형 패키지명.클래스명.접근자.메서드명(매개변수)), 매개변수 모든 것=(..)
@Before("execution(* com.my.aop_step3.*.*(..)") //~메소드가 실행될 때
public void before(JoinPoint jp) {  } //joinPoint : 공간적개념, Before : 시간적 개념

- Mybatis 연동
  - JDBC Driver 연동
  - Mybatis Library 연동


'Spring' 카테고리의 다른 글

Annotation 용어 정리  (0) 2023.03.06
Spring 기본개념  (0) 2023.03.04
Spring 설치  (0) 2023.03.04