개발자 끄적끄적
AOP 작업 본문
<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 |