@Bean과 @Component

popolarburr·2023년 4월 17일
0

공부를 하다보면 @Bean과 @Component를 심심치않게 볼 수 있다.

반자동적으로 사용하던 이들이지만, 어느 상황에서, 어떤 것을 사용해야하지란 의문이 들기 시작했다.

그렇게 찾아보게 됐다.

@Bean의 사용

@Component의 사용

우선 @Bean은 메서드 레벨에서 선언하며, 반환되는 객체를 개발자가 수동으로 빈으로 등록하는 어노테이션이다.

이와 달리, @Component는 클래스 레벨에서 선언함으로써 스프링이 런타임시에 컴포넌트 스캔을 통해 자동으로 빈을 찾아 등록하는 어노테이션이다.

@Bean은 메서드 @Component는 클래스쪽에서 사용한다고 보면 될 것 같다.

이렇게 이해하고 넘어가기엔 부족해서 더 찾아본 결과

@Bean의 경우, 개발자가 컨트롤이 불가능한 외부 라이브러리들을 Bean으로 등록하고 싶은 경우에 사용된다. 반대로 @Component는 개발자가 직접 컨트롤이 가능한 Class들의 경우에 사용한다.

인터페이스를 타고 들어가면 확인가능하다.

@Component는 Target이 Type으로 지정되어 Class위에서만 선언될 수 있음을 알 수 있고, @Bean은 Method는 있지만 Type이 없어 메서드에서만 선언되어짐을 알 수 있다.


[출처] : https://jojoldu.tistory.com/27

profile
차곡차곡

0개의 댓글