@Bean 과 @Component의 차이

이호인·2022년 3월 7일
0

프로젝트

목록 보기
3/6

프로젝트 진행을 위한 초기 설정을 하던 중 궁금한 것이 생겨서 정리해두려고 한다.

스프링이 개발자 대신 객체를 제어하기 위해 (IoC : 제어의 역전) 객체들이 Bean으로 등록되어있어야한다.

과거에는 XML 에 bean 태그로 지정해주었어야했지만 요즘에는 @annotation으로 간단하게 등록할 수 있다.

그 중 configuration 관련 객체들을 등록하는 annotation인
@bean과 @component의 차이는 무엇일까?

BeanComponent
메소드 레벨 클래스 레벨
개발자 컨트롤 불가한
외부 라이브러리 사용 시
개발자가 직접 컨트롤 가능한
내부 클래스에 사용
  1. @Bean
@bean의 경우 선언할 수 있는 타입이 METHOD, method 위에서만 선언 될 수 있다.
  1. @Component
@Component의 경우 선언할 수 있는 타입이 TYPE, class 위에서만 선언될 수 있다.

reference!

https://youngjinmo.github.io/2021/06/bean-component/
https://jojoldu.tistory.com/27

profile
공부 기록

0개의 댓글

관련 채용 정보