우아한 테크톡

[10분 테코톡] 🌕제이의 Spring AOP

dauneee 2022. 4. 5. 09:06

인프라 로직이란 ? 


- 애플리케이션의 전 영역에서 나타날 수 있다.

- 중복 코드를 만들어낼 가능성 때문에 유지보수가 힘들어진다.

비즈니스 로직과 함께 있으면 비즈니스 로직을 이해하기 어려워진다.

 

 -관점 지향 프로그래밍은 횡단괌심에 따라 프로그래밍 하는 것을 의미하고, 애플리케이션을 객체 지향적으로 코드를 구성할 있도록 보완해준다.

 


 

용어
기능

Target
어떠한 대상에 부가 기능을 부여할 것인가

Advice
어떠한 기능을 부가적으로 구현할 것인가!

Before, 메서드가 실행되기 전

- AfterReturning,메서드가 실행된 후 값을 리턴할 때

- AfterThrowing, 메서드가 실행되는 과정에서 예외가 발생하였을 때

After, 메서드가 끝냈을 때 

- Around, 메서드가 실행되기 전후

Join Point
 어디에 ( 메서드, 필드, 객체, 생성자 등 ) 적용할 것인가?

Point Cut
실제
Advice 적용될 지점,

Spring AOP에서는 Advice 적용될 메서드를 선정


 

 

 


 

 

 


AOP의
구현 방법

-컴파일

- 클래스 로드시 

- 프록시 패턴

 

 


 

 


Spring AOP와 AspectJ의 차이점

 
Spring AOP

AspectJ
목표
간단한 AOP 기능 제공

 완벽한 AOP 기능 제공
Join point
메서드 레벨만 지원

생성자, 필드, 메서드 다양하게 지원
Weaving 런타임 시에만 가능 런타임은 제공하지 않고,

Compile-time, post-compile,

load-time에서 제공

대상 Spring Container 관리하는 Bean에만 가능
모든
Java Object 가능

 

 

 


< 영상 >