Continuous Challenge

5. 스프링 빈과 의존관계 본문

Spring/스프링 입문 - 코드로 배우는 스프링 부트, 웹 MV

5. 스프링 빈과 의존관계

응굥 2022. 3. 8. 19:04
728x90
728x90

스프링 빈을 등록하는 방법

1. 컴포넌트 스캔과 자동 의존관계 설정

2. 자바 코드로 직접 스프링 빈 등록하기

 

 

컴포넌트 스캔 원리

- @Component 애노테이션이 있으면 스프링 빈으로 자동 등록된다.

- @Controller 컨트롤러가 스프링 빈으로 자동 등록된 이유도 컴포넌트 스캔 때문이다.

- @Component 를 포함하는 다음 애노테이션도 스프링 빈으로 자동 등록된다.

  . @Controller

  . @Service

  . @Repository

기본적으로는 main() 을 포함한 패키지 하위의 컴포넌트에 대해서만 스캔이 이루어진다.
스프링은 스프링 컨테이너에 스프링 빈을 등록할 때, 기본으로 싱글톤으로 등록한다(유일하게 하나만 등록해서 공유한다) 따라서 같은 스프링 빈이면 모두 같은 인스턴스다. (메모리 절약 가능)
설정으로 싱글톤이 아니게 설정할 수 있지만, 특별한 경우를 제외하면 대부분 싱글톤을 사용한다.

DI(Dependency Injection, 의존성 주입)

  • DI에는 필드 주입, setter 주입, 생성자 주입 3가지 방법이 있다. 
  • 의존관계가 실행중에 동적으로 변하는 경우는 거의 없으므로 생성자 주입을 권장한다.

 

728x90
728x90
Comments