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

배진수님의 프로필 이미지
배진수

작성한 질문수

스프링 핵심 원리 - 기본편

컴포넌트 스캔 파트 문의

작성

·

131

0

1. @Component는 붙이고, @Autowired는 붙이지 않아도 자동으로 DI가 작동해서 테스트에서 에러가 나지 않아요... 어떻게 작동하는 것일까요? --> 그 다음 챕터 강의로 해결했습니다

2. @Configuration을 "스프링 빈이 싱글톤을 유지하도록 추가 처리를 한다"는 부분이 어떤 의미인지 궁금합니다. 다른 Component 계열 어노테이션들(ex. @Service)도 별도 옵션을 두지 않으면 싱글톤 빈을 만든다고 이해했는데 아닌가요?

답변 3

1

김영한님의 프로필 이미지
김영한
지식공유자

"싱글톤의 단위가 클래스가 아니라 메서드"? 라는 표현은 좀 애매한 것 같아요.

결론부터 말씀드리면 스프링의 모든 빈은 기본으로 싱글톤으로 안전하게 등록됩니다. 컴포넌트 스캔을 해도 안전하게 싱글톤으로 등록됩니다^^

(이후 스코프 강의에서 싱글톤이 아닌 빈을 등록하는 방법은 별도로 설명드립니다.^^!)

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 진수님

2번에서 설명드린 뜻은 다음과 같습니다.

1. @Configuration이 붙으면 @Component를 내장하고 있으므로 컴포넌트 스캔의 대상이 된다.

2. @Configuration은 거기에 더해서 @Configuration과 바이트코드 조작의 마법에서 설명드린 설정 정보 안에서 같은 메서드를 여러번 호출해도 싱글톤이 유지되도록 하는 기능이 포함되어 있다는 뜻입니다.

감사합니다^^

0

배진수님의 프로필 이미지
배진수
질문자

"싱글톤의 단위가 클래스가 아니라 메서드" 라고 이해해도 될까요?

배진수님의 프로필 이미지
배진수

작성한 질문수

질문하기