SPRING/Spring Basic

[Spring] Bean 자동등록 VS Bean 수동등록

IT록흐 2024. 2. 6. 00:22
반응형

 

 

어노테이션으로 스프링 컨테이너에 Bean을 등록하는 방법은 2가지가 있다.

 

1) 컴포넌트 스캔으로 자동등록 ( @Component, @Service, @Repository ... )

2) @Configuration 클래스에 수동등록 ( @Bean )

 

두 가지 방식은 언제 어떻게 사용하는 것이 좋을까?

 

1) 업무로직 VS 기술지원 

 

자동방식은 컴포넌트 스캔으로 @Component로 선언된 클래스를 자동으로 Bean으로 등록하니 편하다. 그러나 @Component가 여기저기 퍼져 있어 추적이 힘들다. 수동방식은 @Configuration 클래스를 생성하고 Bean을 하나하나 정의해야 하는 번거로움이 있지만 하나의 클래스에 Bean이 모여 있다보니 관리가 쉽다. 

 

그러므로 

 

자동등록 방식은 업무로직 Bean에 사용하는 것이 좋고 ( Service, Controller, Repository 등등 )

수동등록 방식은 기술지원 Bean에 사용하는 것이 좋다. ( Util , 공통로그, DB연결 등등 )

 

업무로직은 특정한 분야가 있다. 특정한 분야는 특정한 패키지에 묶어 관리한다. 그러므로 한정된 패키지 안에서 @Component를 관리하기가 쉽다. 기술지원은 전영역에 걸쳐 사용된다. 정해진 패키지 없이 광범위하게 사용하는 기술지원 Bean은 @Configuration 클래스에서 수동으로 등록하여 하나의 파일에서 관리해주는 것이 좋다. 

 

 

2) 내가 작성한 코드 VS 외부 라이브러리 

 

@Component는 코드 내에 삽입하는 어노테이션이다. 

 

외부 라이브러리 안의 클래스에는 @Component를 추가할 수 없다. 

 

그러므로

 

외부 라이브러리 클래스인 경우, 설정클래스에 @Bean으로 등록해주고

내가 작성한 클래스인 경우, @Component를 삽입하여 Bean으로 등록해준다.

 

 

 


 

 

 

참고자료

 

스프링 핵심 원리 - 기본편 강의 - 인프런

스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보세요! 📢

www.inflearn.com

 

외부 라이브러리 @bean 등록에 관하여..

인프런 강의 : 스프링 핵심 원리 강의를 듣던 중.. @PostConstruct, @PreDestroy 애노테이션의 특징 최신 스프링에서 가장 권장하는 방법이다. 애노테이션 하나만 붙이면 되므로 매우 편리하다. 패키지를

juu-code.tistory.com

 

반응형