[SPRING]의존성 주입 직접 코드 구현 및 설정하기

ACAI BERRY DEVELOVER·2023년 2월 16일
0
post-thumbnail
  • 스프링에서의 의존성 주입은

    		1. 생성자를 이용한 주입 
            2. setter 메서드를 이용한 주입 

    으로 구현할 수 있다.

  • 설정은 주로 XML이나 어노테이션을 이용해서 처리한다.

다음의 예제는 Lombok을 이용해서 setter 메서드를 자동으로 구현되도록 할 것이며, 스프링의 동작을 테스트 할것이므로

pom.xml에서 Lombok 라이브러리를 추가하고 , spring-test 라이브러리를 이용한다.

구현은 끝났고 설정으로 넘어가 본다.

여기서는 XML을 이용해서 설정을 한다.

프로젝트의 src 폴더 내에 'root-context.xml'은 스프링 프레임워크에서 관리해야 하는 객체(Bean)를 설정하는 설정파일이다.

해당 XML파일에서 네임스페이스 칸에 들어가 context를 체크

관리해야하는 객체들이 있는 패키지를 컴포낸트 스캔으로 등록한다.

빈 그래프에 들어가면 해당 객체들이 등록되어 있는 것을 확인할 수 있다.

스프링이 동작하면서 생기는 일

작성한 두개의 클래스와 'root-context.xml'이 어떻게 동작하는지 이해해보자.

  • 스프링 프레임 워크가 시작되면 먼저 스프링이 사용하는 메모리 영역을 만들게 되고 이를 Context라고 한다.
    스프링에서는 ApplicationContext라는 이름의 객체가 만들어진다.

  • 스프링은 자신이 객체를 생성하고 관리해야 하는 객체들에 대한 설정이 필요하다.
    이에 대한 설정이 root-context.xml파일이다.

  • root-context.xml에 설정되어 있는 <context:component-scan> 태그의 내용을 통해서 'org.ayeon.sample'패키지를 스캔하기 시작한다.

  • 해당 패키지에 있는 클래스들 중에서 스프링이 사용하는 @Component라는 어노테이션이 존재하는 클래스의 인스턴스를 생성한다.

  • Restaurant 객체는 Chef 객체가 필요하다는 어노테이션(@Autowired) 설정이 있으므로, 스프링은 Chef 객체의 레퍼런스를 Restuarant 객체에 주입한다.

profile
쓸때 대충 쓰지 말고! 공부하면서 써!

0개의 댓글