• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

스프링 빈 등록

23.04.18 09:27 작성 조회수 214

0

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

답변 1

답변을 작성해보세요.

0

y2gcoder님의 프로필

y2gcoder

2023.04.18

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

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

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

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

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

감사합니다.

정호빈님의 프로필

정호빈

질문자

2023.04.19

감사합니다!

y2gcoder님의 프로필

y2gcoder

2023.04.19

파이팅입니다!