@Bean vs @Component

dropKick·2022년 1월 27일
0

스프링 프레임워크

목록 보기
6/13

참고 링크

단순히 객체를 등록하는 어노테이션의 경우 @Component를 쓰면 될텐데... 라고 생각했는데 생각보다 @Bean 코드가 많아서 공부함

  • @Bean의 경우
    개발자가 직접 제어할 수 없는 외부 라이브러리의 경우 사용함.
    자바에서 비동기 처리의 경우 쓰레드 풀의 사용을 위해 ThreadPollTaskExecutor()를 사용하는데 ThreadPoolTaskExecutor의 경우 그 내부에 @Component를 선언할 수 없음.
    따라서 외부에서 인스턴스를 생성하고 스프링으로 제어하기 위해 @Bean을 사용함.
    이를 통해 인스턴스를 생성하는 메소드 위에 @Bean을 사용가능

  • @Component의 경우
    스프링에게 인스턴스 생성 및 제어를 맡김.
    따라서 스프링이 인스턴스를 생성할 수 있도록 반드시 클래스 위에 @Component를 붙여주어야함.

0개의 댓글