스코프
- 기본적으로 싱글톤을 유지(@Component, @Service, @Controller...)
프로토 타입으로 변경하고 싶다면?
@Component @Scope(value = "prototype")
위 코드와 같이 설정하여 Prototype으로 변경 가능하다.
싱글톤 빈에서 프로토 타입 빈을 참조하면?
- 기본적으로 싱글톤으로 생성된 후 내부에 있는 프로토 타입의 빈을 참조하는 방식이기 때문에 내부의 프로토 타입 빈이 마치 싱글톤으로 선언된 것 처럼 동작한다.
업데이트 하려면?
- 프록시로 프로토 타입 빈을 묶어준다. (proxyMode는 상황에 따라 변경 가능)
@Component @Scope(value = "prototype", proxyMode = ScopedProxyMode.TARGET_CLASS)
해서 생성되는 싱글톤 빈에서 프로토 타입 빈을 참조하려면 프로토 타입 빈의 프록시를 호출하여 처리