@Service
public class MyService {
public void hello() {
System.out.println("Hello!");
}
}
여기에 AOP가 적용되어 있다고 가정하면:
MyService (우리가 만든 클래스)
↓ 감쌈
프록시 (AOP 기능 추가된 대리 객체)
↓ 등록됨
스프링 빈 (→ 이건 프록시 객체!)
스프링 컨테이너 안에 실제로 있는 객체(스프링 빈)는 = 프록시 객체
이 프록시가 내부에서 ⇒ 원래 MyService 객체를 호출하는 구조
스프링은 기존 코드를 전혀 수정하지 않고도
트랜잭션, 로깅, 보안 같은 기능을 자동으로 끼워넣을 수 있다.