728x90
반응형
싱글톤 스코프의 빈을 조회하면 스프링 컨테이너는 항상 같은 인스턴스의 스프링 빈을 반환한다. 반면 프로토타입 스코프를 스프링 컨테이너에 조회하면 스프링 컨테이너는 항상 새로운 인스턴스를 생성해서 반환한다.
- 스프링 컨테이너는 프로토타입 빈을 생성하고, 의존관계 주입, 초기화까지만 처리한다.
- 클라이언트에 빈을 반환하고, 이후 스프링 컨테이너는 프로토타입 빈을 관리하지 않는다.
- 따라서 프로토타입 빈을 관리할 책임은 빈을 받은 클라이언트에 있다.
- 그래서 @PreDestory 같은 종료 메서드가 호출되지 않는다.
프로토타입 스코프 빈을 조회하는 prototypeBeanFind()를 실행하면 아래와 같은 결과가 나온다.
@Scope("prototype")
find prototypeBean1
PrototypeBean.init
find prototypeBean2
PrototypeBean.init
prototypeBean1 = hello.core.scope.PrototypeTest$PrototypeBean@1e461e41
prototypeBean2 = hello.core.scope.PrototypeTest$PrototypeBean@5ba88be8
- 프로토타입 빈을 2번 조회해 완전히 다른 스프링 빈이 생성되고, 초기화도 2번 실행되었다.
- 프로토타입 빈은 스프링 컨테이너가 생성 / 의존관계 주입 / 초기화 까지만 관여하고, 더는 관리하지 않는다.
- 그래서 @PreDestory 같은 종료 메서드가 호출되지 않는다.
728x90
반응형
'Tech > Spring' 카테고리의 다른 글
[Spring] java: cannot find symbol class Badge 에러 해결 방법, QueryDSL 해결 방법 (0) | 2023.01.07 |
---|---|
[스프링 핵심 원리] 웹 스코프 (0) | 2022.02.06 |
[스프링 핵심 원리] 자동, 수동의 올바른 실무 운영 기준 (0) | 2022.01.22 |
[스프링 핵심 원리] @Autowired 필드명, @Qualifier, @Primary (0) | 2022.01.19 |
[스프링 핵심 원리] 다양한 의존관계 주입 방법 (0) | 2022.01.17 |