작성
·
244
답변 1
0
안녕하세요, 정호빈 님. 공식 서포터즈 y2gcoder 입니다.
스프링 빈이 등록될 때, @Bean
과 @Component
어노테이션을 사용하는 객체 자체가 빈으로 등록됩니다. 각 어노테이션의 역할은 다음과 같습니다:
@Bean
: 이 어노테이션은 보통 @Configuration
으로 표시된 클래스 내에서 사용됩니다. @Bean
어노테이션이 붙은 메소드가 반환하는 객체는 스프링 IoC 컨테이너에 빈으로 등록되며, 해당 메소드의 반환형에 따른 빈으로 처리됩니다. 이렇게 생성된 빈은 싱글톤 객체로 관리되며 필요한 곳에서 주입됩니다.
@Component
: 이 어노테이션은 클래스 수준에서 사용되며, 해당 클래스의 인스턴스가 스프링 IoC 컨테이너에 빈으로 자동 등록되도록 합니다. @Component
는 @Service
, @Repository
, @Controller
와 같은 다른 스테레오타입 어노테이션의 기반이 되기도 합니다. 이러한 어노테이션이 붙은 클래스의 인스턴스가 빈으로 등록되어 필요한 곳에서 주입됩니다.
요약하면, @Bean
어노테이션이 붙은 메소드가 반환하는 객체와 @Component
어노테이션을 사용하는 객체 자체가 빈으로 등록되며, 이러한 어노테이션으로 지정된 객체를 생성하는 객체가 등록되는 것이 아닙니다.
감사합니다.
감사합니다!