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

정호빈님의 프로필 이미지
정호빈

작성한 질문수

스프링 핵심 원리 - 기본편

스프링 빈 등록

작성

·

244

0

스프링 빈이 등록될 때, @Bean으로 지정하거나 @Component로 지정한 객체 자체가 빈으로 등록 되는 건가요 아니면 이러한 어노테이션으로 지정한 '객체를 생성하는' 객체가 빈으로 등록되는 건가요?

답변 1

0

안녕하세요, 정호빈 님. 공식 서포터즈 y2gcoder 입니다.

스프링 빈이 등록될 때, @Bean@Component 어노테이션을 사용하는 객체 자체가 빈으로 등록됩니다. 각 어노테이션의 역할은 다음과 같습니다:

  1. @Bean: 이 어노테이션은 보통 @Configuration으로 표시된 클래스 내에서 사용됩니다. @Bean 어노테이션이 붙은 메소드가 반환하는 객체는 스프링 IoC 컨테이너에 빈으로 등록되며, 해당 메소드의 반환형에 따른 빈으로 처리됩니다. 이렇게 생성된 빈은 싱글톤 객체로 관리되며 필요한 곳에서 주입됩니다.

  2. @Component: 이 어노테이션은 클래스 수준에서 사용되며, 해당 클래스의 인스턴스가 스프링 IoC 컨테이너에 빈으로 자동 등록되도록 합니다. @Component@Service, @Repository, @Controller와 같은 다른 스테레오타입 어노테이션의 기반이 되기도 합니다. 이러한 어노테이션이 붙은 클래스의 인스턴스가 빈으로 등록되어 필요한 곳에서 주입됩니다.

요약하면, @Bean 어노테이션이 붙은 메소드가 반환하는 객체와 @Component 어노테이션을 사용하는 객체 자체가 빈으로 등록되며, 이러한 어노테이션으로 지정된 객체를 생성하는 객체가 등록되는 것이 아닙니다.

감사합니다.

정호빈님의 프로필 이미지
정호빈
질문자

감사합니다!

파이팅입니다!

정호빈님의 프로필 이미지
정호빈

작성한 질문수

질문하기