BE/Spring

Spring AOP

잠수함 2021. 7. 6. 16:32
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