상세 컨텐츠

본문 제목

[Spring] @Configuration과 @Component의 차이

IT/기초

by SINAFLA 2021. 8. 17. 15:46

본문

반응형

@Bean

  • Spring에서 IoC 컨테이너가 관리하는 자바 객체를 빈(Bean)이라고 부릅니다. Spring IoC(Inversion of Control) 컨테이너에 의해 인스턴스화, 관리, 생성이 됩니다.
  • 스프링은 기본적으로 모든 bean을 singleton으로 생성하여 관리합니다. 애플리케이션 구동 시 JVM 안에서 스프링이 bean마다 하나의 객체를 생성하는 걸 의미합니다.
  • Bean을 등록하는 방법은 @Bean 어노테이션을 이용해 등록합니다.
  • @Bean 어노테이션을 이용해 등록하지만 스프링에서는 등록한 메소드를 찾지 못합니다. 그래서 @Configuration 어노테이션이나 @Component를 등록합니다.

 

@Configuration

  • 스프링 IoC Container에게 Bean 구성 Class 임을 알려줍니다.
  • Bean을 사용하기 위해서 설정되는 Class 어노테이션입니다.

@Configuration + @Bean 은 외부 라이브러리 또는 내장 클래스를 bean으로 등록하고 할 경우 사용합니다. 1개 이상의 @Bean을 제공하는 클래스의 경우 반드시 @Configuration으로 명시해야 합니다.

 

@Component

  • 클래스를 Bean으로 등록하여 사용하는 형태로 구현합니다.
  • @Component 어노테이션은 @Autowired 어노테이션을 이용하여 사용합니다.
  • @Autowired를 사용해 의존성을 주입합니다.
  • @Component는 개발자가 직접 작성한 클래스를 bean 등록하고 할 경우 사용합니다.

 

@Bean과 @Component 차이

Bean과 Component는 Class, Method 네임으로 카멜표기법으로 변경한 것이 id로 사용됩니다.

  • Bean(name = "")
  • Component(value = "")
  • 개발자가 직접 장성한 class를 Bean으로 만들 때 @Component를 사용합니다.
  • 개발자가 직접 작성한 Method를 통해 반환되는 객체를 사용할 때 @Bean 사용합니다.

 

 

반응형

관련글 더보기

댓글 영역