본문 바로가기
공부이야기/[Spring.210428~]

[스프링 입문] 컴포넌트 스캔과 자동 의존관계 설정

by Nameless 2021. 5. 6.

MVC, 템플릿 엔진 이미지

MVC, 템플릿 엔진 이미지

helloController 안에 애노테이션이 있으면 Spring이 뜰 때 생성하여 알아서 관리한다.

 


 

1. 스프링 빈을 등록하는 2가지 방법

 - 컴포넌트 스캔(ex. @Service, @~) 과 자동 의존관계 설정

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

 

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

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

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

  

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

      - @Controller

      - @Service

      - @Repository

 

더보기

    + 아무곳이나 @Componet를 해도 되는가?

       우리가 실행하려는 패키지를 포함하여 하위패키지까지만 가능, 컴포넌트 스캔의 범위에 들지않음

              -> hello.hellospring 의 하위패키지까지 실행한다.

 

 

 

 

스프링 빈 등록 이미지

스프링 빈 등록 이미지

- @Autowired 는 위의 그림의 선과의 연관관계를 연결

 

더보기

- 참고 : 스프링은 스프링 컨테이너에 스프링 빈을 등록할 때, 기본으로 싱글톤으로 등록한다 (유일하게 하나만 등록해서 공유한다 -> helloController나 memberService ...모두 하나씩만)  따라서 같은 스프링 빈이면 모두 같은 인스턴스다. 설정으로 싱글톤이 아니게 설정할 수 있지만, 특별한 경우 제외하면 대부분 싱글톤 사용한다.

 

댓글