-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
스프링 컨테이너와 빈 스코프
24.01.04 19:00 작성 조회수 180
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]스프링 컨테이너가 사용되면, 스프링 구성정보(Configuration) 을 활용해서 아래처럼 스프링 빈 저장소에 빈 이름과 빈 객체가 저장된다고 배웠는데요. 싱글톤 컨테이너의 경우에는 AppConfig 파일에서 @Bean으로 수동등록된 것이나, 혹은 컴포넌트 스캔을 통하여 스프링 컨테이너에 객체를 생성하여 등록하는 것으로 알고 있습니다.
그런데 프로토타입 스코프와 웹 스코프의 경우에는 스프링 빈 저장소에 빈 객체의 주소값을 저장하는지 궁금합니다.예를 들어, 프로토타입 스코프를 스프링 컨테이너에 조회하면 스프링 컨테이너는 항상 새로운 인스턴스를 생성해서 반환하는데, 그럼 스프링 컨테이너가 생성되는 시점에서 ' 빈 이름 ' 만 등록되고, 빈 객체는 생성되지 않은 채 주소값이 등록되지 않는 것일까요??
같은 맥락으로, 웹 스코프에서 request scope은 HTTP 요청이 들어오고 나갈 때까지만 유지되는 스코프입니다.@Component @Scope(value = "request") public class MyLogger {
.. }
MyLogger 클래스는 위처럼 @Component 로 되어 있기 때문에 컴포넌트 스캔의 대상인데, 그러면 스프링 컨테이너에 등록 될 때 빈 이름만 등록되고 객체는 생성되지 않은 채 등록되는 것일까요?그리고 이후에 @Controller @RequiredArgsConstructorpublic class LogDemoController { private final MyLogger myLogger;... }LogDemoController에서 의존관계 주입으로 MyLogger가 필요할 때, 그 때 비로소 객체가 생성되어서 스프링 컨테이너에 등록되어야 하는데, request scope이기 때문에 오류가 났던 것인가요?? 답변 주시면 감사하겠습니다.
답변을 작성해보세요.
0
인프런 AI 인턴
2024.01.04
안녕하세요, 인프런 AI 인턴입니다.
pbs0216님의 질문과 유사한 내용으로 설명되어 있는 게시물을 찾았습니다. 프로토타입 스코프 빈의 경우 스프링 컨테이너가 생성된 이후, 스프링 빈 저장소에 빈 이름만 있고, 빈 객체는 비어 있으며 요청이 와야 객체를 생성하여 클라이언트에게 반환하는 것에 대해 궁금해 하셨던 다른 수강생의 질문에 대한 답변을 참고하시면 도움이 될 것 같습니다.
게시글 제목: “프로토타입 스코프 빈의 스프링 빈 저장소에서의 상태”
링크: 프로토타입 스코프 빈의 스프링 빈 저장소에서의 상태
이 답변을 통해 pbs0216님의 궁금증을 해소할 수 있기를 바랍니다.
답변 2