Spring

[Spring]#05 스프링 빈과 의존 관계

Noooodle 2024. 1. 20. 13:24

지금까지 만든 회원 서비스를 사용하기 위해서는 컨트롤러가 필요하다. 회원 컨트롤러가 회원 서비스와 회원 리포지토리를 사용하려면 의존관계가 필요하다. Autowired를 사용하는 방법과 직접 자바 코드를 만드는 방법 2가지가 있다. 실무에서는 후자를 쓴다.

 

1. 컴포넌트 스캔

MemberController 생성
MemberService에 @Service표시 및 생성자 만들기
MemberRepository에도 @Repository라고 표시

 

<컴포넌트 스캔 원리>

  • @Component 애노테이션이 있으면 스프링 빈으로 자동 등록된다.
  • @Controller 컨트롤러가 스프링 빈으로 자동 등록된 이유도 컴포넌트 스캔 때문이다.
  • @Component 를 포함하는 @Controller @Service @Repository  애노테이션도 스프링 빈으로 자동 등록된다. 

 

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

SpringConfig 파일 생성

@Bean ~~{ } 이 부분은 Spring Bean에 올리라고 Spring이 인식한다. 

new MemberService를 생성할때(12번째줄) 생성자에 MemoryMemberRepository가 필요하므로 MemberRepository도 만들어준다.(13번째줄)

MemberService 생성자
컨트롤러는 애너그램 필요함
Repository는 그대로..
출처: 김영한님 Spring 강의

1과 2의 방식으로 스프링 빈에 등록하면 스프링 컨테이너에 이런 식으로 memberController와 MemberService, memberRepository가 연결되어 등록된다.