본문 바로가기

건승하고있어요/Spring framework

[Spring] 스프링2일차 - 어드바이스 동작 시점

반응형

어드바이스

각 조인포인트에 삽입되어 동작할 횡단 관심에 해당하는 공통기능

동작시점은 각 AOP기술마다 다름


 동작시점 

 설명 

 Before 

 비지니스 메소드 실행 전 동작 

 After 

 -After Returning: 비지니스 메소드가 성공적으로 리턴되면 동작

 -After Throwing: 비지니스 메소드 실행 중 예외가 발생하면 동작

 -After : 비지니스 메소드가 실행된 후 무조건 실행 

 Around

 Around는 메소드 호출 자체를 가로채 비지니스 메소드 실행 전후에 처리할 로직을 삽입할 수 있음


Before 어드바이스

포인트컷으로 지정된 메소드 호출 시, 메소드가 실행되기 전에 처리될 내용들을 기술하기 위해 사용


After Returning 어드바이스

포인트컷으로 지정된 메소드가 정상적으로 실행되고 나서 메소드 수행 결과로 생성된 데이터를 리턴하는 시점에 동작.

따라서 비지니스 메소드 수행결과로 얻은 결과 데이터를 이용하여 사후 처리 로직을 추가할 때 사용


AfterThrowing 어드바이스

포인트컷으로 지정한 메소드가 실행되다가 예외가 발생하는 시점에 동작

예외 처리 어드바이스를 설정할 때 사용

try-catch-finally에서 catch에 해당

예외가 발생하면 메소드 실행 뿅


After 어드바이스

try-catch-finally 구문에서 finally 블록처럼 예외 발생 여부에 상관없이 무조건 수행되는 어드바이스


Around 어드바이스

하나의 어드바이스가 비지니스 메소드 실행 전과 후에 모두 동작하여 로직을 처리하는 경우에  사용

Around 어드바이스는 클라이언트 메소드 호출을 가로챔 -> 

클라이언트가 호출한 비즈니스 메소드가 실행되기 전에 사전처리 로직을 수행할 수 있음. 

비즈니스 메소드가 모두 실행되고 나서 사후처리 로직을 수행할 수 있음.

보면 메소드가 실행되기 전 후로 실행되고 있음을 볼 수 있다.



반응형