1. Spring AOP 특징
1-1) Spring AOP 특징
프록시 기반의 AOP 구현체임. 프록시 객체를 사용하는 이유는 접근 제어 및 부가 기능을
추가하기 위해서임. Spring Bean에만 AOP를 적용할 수 있음.
모든 AOP 기능을 제공하는 것이 아니라 Spring IoC와 연동하여 엔터프라이즈 애플리케이션에서
가장 흔한 문제(중복코드, 프록시 클래스 작성의 번거로움, 객체 간 관계 복잡도 등)를
해결하기 위한 솔루션을 제공하는 것이 목적임.
1-2) Proxy Pattern Image
2. Proxy Pattern 사용하기 전, 기존 코드를 건드렸을 때
2-1) EventService(Subject)
2-2) SimpleEventService(Real Subject)
2-2)-1. 기존 코드를 건드렸을 때
2-2)-2. Console
2-3) AppRunner(Client)
2-4) Console
3. Proxy Pattern
3-1) Proxy Pattern
SimpleEventServie(Real Subject)와 AppRunner(Client)를 건들이지 않고 성능 테스트.
3-2) Proxy Pattern Image
→ Proxy Pattern에는 Interface가 존재함.
→ Client에는 Interface 타입으로 Proxy 객체를 사용함.
→ Proxy 객체는 기존의 타겟 객체(Real Subject)를 참조하고 있음.
→ Proxy 객체와 Real Subject의 타입은 같음.
→ Proxy는 Real Subject를 감싸서 Client의 요청을 처리함.
3-3) class ProxySimpleEventService(Proxy)
3-3)-1. Proxy Pattern의 문제점
→ 매번 프록시 클래스를 작성해야하는가?
→ 여러 클래스 여러 메소드에 적용하려면
→ 객체들 관계의 복잡성.
→ 중복 코드가 발생.
3-4) Console