본문 바로가기

spring AOP3

[Spring] Spring AOP 동작 방식 @EnableAspectJAutoProxy 기본적으로 ProxyFactory 클래스를 사용하여 AOP 프록시를 생성하고 관리할 수 있지만 이는 수동적이며 번거로운 작업입니다. 그렇기 때문에 Spring은 프록시 생성과 관리의 작업을 자동화하고 추상화한 org.springframework.context.annotation.EnableAspectJAutoProxy 어노테이션을 제공합니다. @EnableAspectJAutoProxy는 IoC 컨테이너가 org.aspectj.lang.annotation.Aspect가 적용된 클래스를 스캔하고 필요한 프록시를 자동으로 생성하여 AOP를 적용할 수 있게끔 설정합니다. @Target(ElementType.TYPE) @Retention(RetentionPolicy.RU.. 2023. 8. 30.
[Spring] Spring AOP JDK Dynamic & CGLIB Proxy 생성 방식 ProxyFactory org.springframework.aop.framework.ProxyFactory 설명하기 앞서 Spring에서 AopProxy를 어떤 식으로 관리하는지 살펴 보겠습니다. public interface AopProxy { Object getProxy(); Object getProxy(@Nullable ClassLoader classLoader); Class getProxyClass(@Nullable ClassLoader classLoader); } 스프링은 org.springframework.aop.framework.AopProxy를 통해 AOP Proxy 객체를 추상화했습니다. 그 중 제공하는 구현체로는 인터페이스 기반의 JDK Dynamic Proxy와 클래스 기반의 CGLI.. 2023. 8. 28.
[Spring] Spring AOP란? AOP AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍을 뜻합니다. AOP는 시스템을 구성하고 모듈화하는 새로운 방법을 제공하는 프로그래밍 방법론으로 OOP(Object Oriented Programming)의 보완적인 개념으로 등장했습니다. OOP는 주로 주요 비즈니스 로직을 객체로 추상화하여 모델링하는데 중점을 두기 때문에 중복되는 관심사(Concerns) 문제를 해결하기에는 제한적입니다. AOP는 이러한 OOP의 한계를 극복하기 위해 등장한 개념으로 Cross-cutting Concerns와 Core Concerns를 분리하여 모듈화하는 것을 목표로 합니다. 관심사를 Aspect 라는 모듈로 모델링하여 주요 비즈니스 로직과는 별개로 존재하면서도 여러 모듈에 .. 2023. 8. 27.