aspectj 2

Spring AOP

Aspect 공통적인 부가 기능인 횡단 관심사를 위해 만들어진 것이 바로 Aspect이다. Aspect는 관점이라는 뜻인데, 애플리케이션을 바라보는 관점을 각각의 기능에서 횡단 관심사 관점으로 본다는 의미이다. 이렇게 횡단 관심사를 처리하는 Aspect를 사용한 프로그래밍 방식이 AOP(Aspect Oriented Programming)!! 이는 객체 지향을 대체하는 것이 아닌 OOP만으로 처리하기 어려운 횡단 관심사를 보조하기 위한 목적을 가지고 있다. Spring이 제공하는 Advisor, Advice, Pointcut 또한 하나의 Aspect라고 볼 수 있다. AOP AOP의 가장 핵심 아이디어는 횡단 관심사를 분리하여 한 곳에서 관리하도록 하는 것이다. AOP 적용 방식 AOP에서 횡단 관심사를 ..

@Aspect AOP

Spring에 @Aspect 애노테이션을 사용하면 이것이 Advisor 생성 기능을 지원한다. @Aspect는 AspectJ에서 제공하는 애노테이션으로 스프링은 이를 사용해 AOP를 가능케한다. 코드로 살펴보자 @Aspect : 프록시를 적용하기 위한 애노테이션 @Around : Pointcut을 위한 애노테이션, 인자로 AspectJ표현식을 넣는다. @Around가 붙은 메서드가 바로 Advice이다.(여기서는 execute) ProceedingJoinPoint : MethodInvocation과 유사하다. 내부에 실제 호출 대상(target), 전달 인자, 어떤 객체와 어떤 메서드가 호출되었는지에 대한 정보가 포함되어 있다. proceed() : target 호출 이렇게 만들어진 프록시를 스프링 빈으..

반응형