본문 바로가기

컴퓨터공학/Spring & Hibernate

Spring> AOP> @AfterReturning and @AfterThrowing


@After Returning Pre work

 

 

전체적인 흐름을 나타내는 그림

 

Account 클래스 만들기

정보를 담는 그릇

AccountDAO  클래스 만들기

DAO 는 원래 데이터베이스에서 데이터를 가져와야 하는데 여기서는 DAO에서 생성하고 사용한다.

메인 클래스 만들기

 

DAO 에서 객체 클래스를 만들고 리스트에 담은 다음 

메인 클래스에서 객체 리스트를 받고 표현한다.

 

pre work에서는 AOP 기능 없이 순수 클래스 기능을 구현한다.

 


@After Returning


@AfterReturning 이 @Before와 다른 점은 Pointcut이  같이 있다는 점이다. 


After Returning 데이터 다루기


@AfterThrowing Pre work

 

findAccounts( ) 메소드가 예외를 던질 것이다.

왜냐하면 입력값으로 참값을 넣었기에 메소드는 예외를 던진다.

그러면 메인함수는 예외를 받아서 오류 발생 시 작동하는 기능을 실행한다.

 

정상실행이 된다면 메인함수에서 DAO의 findAccount( )를 실행했을 경우

Account 객체 리스트를 반환하는 걸 받아서 변수에 둔다.

하지만 에러가 나면 findAccount 에서 리스트에 채우는 기능이 실행이 안되고 에러를 던진다.

메인함수에서는 에러를 받고 catch 부분이 실행된다. 리스트 변수가 리스트를 제대로 못 받았으니

그대로 리스트 변수를 출력하면 null값이 표현된다.


@AfterThrowing

여기서도 Pointcut을 따로 두지 않고 같이 뒀다.

메인함수에서 예외처리 전에 @AfterThrowing에서 예외처리를 먼저 실행한다. 

전체 순서는 메인함수, @Before, 목표객체함수, @AfterReturning, 메인함수 이다.

'컴퓨터공학 > Spring & Hibernate' 카테고리의 다른 글

Spring> AOP> Around Advice Type  (0) 2021.05.22
Spring> AOP> @After Advice  (0) 2021.05.21
Spring> AOP> Ordering and JoinPoints  (0) 2021.05.18
Spring> AOP> Pointcut  (0) 2021.05.18
Spring> AOP> Match method  (0) 2021.05.17