인프런 커뮤니티 질문&답변

스윙님의 프로필 이미지

작성한 질문수

스프링 핵심 원리 - 기본편

싱글톤 방식의 주의점

TestConfig에 @Configuration 빠져도 싱글톤으로 관리되는 이유

작성

·

506

3

안녕하세요

1.싱글톤관련되서 스프링컨텍스트에서 빈을 싱글톤으로 관리하려면 클래스에 @Configuration을 붙여야하는데 TestConfig클래스에 이 애노테이션을 붙이지 않아도 싱글톤으로 관리되는지 궁금합니다.결과론적으로는 붙이지 않아도 싱글톤으로 관리되는데 왜 그런지 궁금합니다

static class TestConfig {

-> 아래처럼 되어야 싱글톤으로 관리할수 있는게 아닌지요?

@Configuration

static class TestConfig {

2. 다른 테스트코드에서 사용되는 static config 클래스에는 @Configuration을 붙였는데 여기만 뺀 이유가 있는지요?

 

답변 3

2

와 눈치도 못채고 있었는데 감사합니다. 역시 질문도 잘 봐야하는 군요..

0

스윙님의 프로필 이미지
스윙
질문자

네 답변 감사드립니다
스프링컨테이너에 직접 등록되면 등록된 클래스 빈은 싱글톤으로 관리되는지요?

@Configuration 을 설정해야  스프링컨테이너가 이 클래스를 싱글톤으로 관리되지 않는지요?

 

 

스프링 컨테이너에 직접 등록해도 동일하게 싱글톤으로 관리 됩니다.

 

추가로 답변 못드렸던 부분이 있었네요,

" 

다른 테스트코드에서 사용되는 static config 클래스에는 @Configuration을 붙였는데 여기만 뺀 이유가 있는지요?

"

=> 영한님의 의도는 잘 모르겠습니다만,  영한님 강의 스타일이 동일한 결과에 대해 다양한 방법을 소개해주시거나, 점진적으로 나아지는 방법을 소개해주시는 특징 상

 (의도를 설명하시진 않았지만) @Configuration을 작성하지 않아도 동작하는 것을 보여주시기 위해 작성하였을 수 있을 것 같습니다.

 

 

 

 

0

안녕하세요. 스윙님, 공식 서포터즈 OMG입니다.

 

@Controller, @Service, @Repository, @Component, @Configuration 과 같이 컴포넌트 스캔의 대상이 되도록 어노테이션을 지정하여 스프링 빈으로 자동등록하는 방법도 있지만 첫번째 라인의

 

AnnotationConfigApplicationContext( TestConfig.class )

코드에서 스프링컨테이너에 빈을 직접 등록할 수 있습니다.

아래의 링크를 참고해주세요 :)

https://www.inflearn.com/questions/261305

 

감사합니다.

스윙님의 프로필 이미지

작성한 질문수

질문하기