@Component와 @Bean의 차이

Aram Kim·2023년 1월 29일

Learn about

목록 보기
6/6

@Component 란?

@Component 는 Spring이 사용자 정의 빈을 자동으로 감지할 수 있도록 하는 주석

명시적인 코드를 작성하지 않고도 Spring은 다음을 수행한다.

  • @Component 주석이 달린 클래스에 대한 애플리케이션 스캔
  • 인스턴스화하고 지정된 종속성을 주입합니다.
  • 필요한 곳에 주입

@Component와 @Bean의 차이

  • @Bean 은 Spring이 runtime에 bean을 수집하기 위해 사용하는 주석이지만, 클래스 수준에서는 사용되지 않는다.
    대신, @Bean 으로 메서드에 주석을 달아 Spring이 메서드의 결과를 Spring bean으로 저장할 수 있도록 한다.

  • @Component 는 클래스 수준 주석이지만 @Bean 은 메서드 수준에 있으므로, @Component 는 클래스의 소스 코드를 편집할 수 있는 경우에만 옵션이다. @Bean 은 항상 사용할 수 있지만 더 장황한 편이다.

  • @Component 는 Spring의 자동 감지와 호환되지만 @Bean 은 수동 클래스 인스턴스화가 필요합니다.
    @Bean 을 사용하면 클래스 정의에서 Bean의 인스턴스화가 분리된다.

출처
https://www.baeldung.com/spring-component-annotation

profile
✏️ 성장중인 백엔드 개발자입니다.

0개의 댓글