728x90
AOP 핵심: 관심 분리(Separation of Concerns)
- 횡단 관심: AOP에서 메소드마다 공통적으로 등장하는 로깅이나 예외, 트랜잭션 처리 같은 코드들
- 핵심 관심: 사용자의 요청에 따라 실제로 수행되는 핵심 비즈니스 로직
/* pom.xml에 AOP 관련 라이브러리 추가하기*/
<dependecy>
<gorupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${org.aspectj-version}</version>
</dependecy>
<dependecy>
<gorupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.8</version>
</dependecy>
AOP의 주된목적
- 스프링 AOP는 클라이언트가 핵심관심에 해당하는 비즈니스 메소드를 호출할 때, 횡단 관심에 해당하는 메소드를 적절하게 실행해주는데 핵심 관심 메소드와 횡단 관심 메소드 사이에서 소스상의 결합은 발생하지 않는것이 주된목적이다.
< AOP 용어 >
1. 조인포인트
- 클라이언트가 호출하는 메소드
2. 포인트컷
- 필터링된 조인 포인트
- 수 많은 비즈니스 메소드 중에서 원하는 특정 메소드에서만 횡단 관심에 해당하는 공통 기능을 수행시키기 위해 필요
- 메소드가 포함된 클래스와 패키지, 메소드 시그니처까지 지정가능
3. 어드바이스
- 횡단 관심에 해당하는 공통 기능의 코드를 의미, 독립된 클래스의 메소드로 작성.
- 어드바이스의 동작시점은 "before", "after", "after-returning", "after-throwing", "around" 가 있다.
4. 위빙
- 포인트컷으로 지정한 핵심 관심 메소드가 호출될 때, 어드바이스에 해당하는 횡단 관심 메소드가 삽입되는 과정을 의미.
5. 애스팩트, 어드바이저
- 애스팩트: 포인트컷과 어드바이스의 결합 (어떤 포인트컷 메소드에 어떤 어드바이스 메소드를 실행할지 결정함.)
'BE > Spring' 카테고리의 다른 글
Spring annotation (0) | 2021.07.02 |
---|---|
Spring xml (0) | 2021.07.02 |
Spring container (0) | 2021.07.02 |
spring basic #1 (0) | 2021.07.01 |
의존성 주입 (0) | 2021.06.08 |