프록시 서버와는 다르다! (물론 중간 중계라는 건 같음)
-> 프록시는 리얼과 같은 기능을 가지고 있어야 함 (그래야 대리로 해주지!)
@Autowired
@Lazy //순환참조 방지 (나중에 주입해서 지꺼 계속 받는 걸 방지)
private AppConfig self;
//그러나 Lasy를 쓰는 게 좋은 방법은 아님.
@Bean
public ApplicationRunner myApplicationRunner3() {
return args -> {
self.work1(); //this 같이 자기 자신 거 쓰면 트랜잭션 안 탐
self.work2();// self로 해결! (이제 트랜잭션 탐) (프록시 객체 이용)
this.work1(); //리얼 객체와 연결
this.work2();
};
}
프록시가 필요한 것은 (보통 그 판은 어노테이션 달린 거 보고 스프링이 함) 스프링이 알아서 프록시 객체로 봄