2016년 8월 10일 수요일

스프링 퀵스타트 2일차

횡단관심과 핵심관심


공통으로 동작하는 비즈니스 로직 로깅, 예외,트랜젝션을 횡단관심,

사용자의 요청에 따라 실제로 수행되는 핵심 비즈니스로직을 핵심관심이라 한다.

OOP에서 이 핵심관심과 횡단관심을 완벽하게 분리할수는 없지만

AOP는 이런 OOP의 한계를 극복할수있도록 도와준다.

스프링의 AOP는 클라이언트가 핵심관심에 해당하는 비즈니스 메소드를 호출할 때, 횡단 관심에 해당하는 메소드를 적절하게 실행해 준다. 이ㄸ 핵심관심 메소드와 횡단관심 메소드 사이에서 소스상의 결합은 발생하지 않으며, 이것이 우리가 AOP를 사용하는 주된 목적이다.

AOP의 핵심은 바로 애스팩트이다. 애스팩트는 포인트컷과 어드바이스의 결합으로서 어떤 포인트컷 메소드에 대해서 어떤 어드바이스 메소드를 실행할지 결정한다. 이 애스팩트 설정에 따라 AOP의 동작방식이 결정되므로 AOP용어중 가장 중요한 개념이라 할수있다.


199 페이지 Before 어드바이스

어노테이션을 이용한 어드바이스를 실습하는데 잘 안된다.

오타 확인도 했고 설정파일의 기존의 내용을 주석처리 했는데
알맞게 결과가 나오지 않는다

해결) 알고보니 applicationContext.xml에서
<aop:aspectj-autoproxy/>  구문이 사라져있다.
주석처리하면서 지워졌나보다

구문 삽입후 정상작동 확인.

어드바이스 메소드 중에서 유일하게 Around메소드에서만 JoinPoint가 아닌 ProceedingJoinPoint객체를 매개변수로 받는다 그래야 proceed()메소드를 이용하여 클라이언트가 호출한 비즈니스 메소드를 실행할 수 있기 때문이다.

댓글 없음: