ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 의존성 주입
    SPRING 2021. 5. 21. 15:27

    개인 공부 후 정리 목적인 글입니다.

     

     

     

    의존성 관리

    스프링의 의존성 관리 방법

    스프링 프레임 워크의 가장 중요한 특징이자 스프링 IoC(제어의 역행)의 핵심 원리

    => 객체의 생성과 의존관계를 컨테이너가 자동으로 관리한다는 점

     

    1. 스프링 IoC(제어의 역행)의 핵심 원리

    - Dependency Lookup : 컨테이너가 애플리케이션 운용에 필요한 객체를 생성하고 클라이언트는 컨테이너가 생성한 객체를 검색(Lookup)하여 사용하는 방식 => 실제 개발에서 사용하지 않는다.

     

    - Dependency Injection : 객체 사이의 의존관계를 스프링 설정 파일에 등록된 정보를 바탕으로 컨테이너가 자동으로 처리 => 스프링 설정 파일 수정만으로 변경사항을 적용할 수 있어서 유지보수가 향상된다.

     

    세터 인젝션(Setter Injection) : Setter 메소드를 기반

    생성자 인젝션(Constructor Injection) : 생성자를 기반

     

     

    2. 의존성(Dependency) 관계 

    객체와 객체의 결합 관계 즉, 하나의 객체에서 다른 객체의 변수나 메소드를 이용할때 객체에 대한 객체 생성과 생성된 객체의 레퍼런스 정보의 결합

     

     

     

    생성자 인젝션 이용하기

    스프링 컨테이너는 XML 설정 파일에 등록된 클래스를 찾아서 객체 생성할 때 기본적으로 매개변수가 없는 기본(Default) 생성자를 호출한다. 하지만 컨테이너가 기본 생성자 말고 매개변수를 가지는 다른 생성자를 호출하도록 설정할 수 있는데, 이 기능을 이용하여 생성자 인젝션(Constructor Injection)을 처리한다. 생성자 인젝션을 사용하면 생성자의 매개변수로 의존관계에 있는 객체의 주소 정보를 전달할 수 있다.

     

    즉, 생성자 인젝션 : 생성자를 이용하여 의존성을 처리한다.

     

    1. 다중 변수 매핑

    생성자 인젝션에서 초기화해야 할 멤버변수가 여러 개이면, 여러 개의 값을 한꺼번에 전달해야 한다.

     

    2. 의존관계 변경

    3. Setter 인젝션 이용하기

    : Setter 메소드를 호출하여 의존성 주입을 처리하는 방법

     

    Setter 인젝션 기본

    Setter 메소드는 스프링 컨테이너가 자동으로 호출하며, 호출하는 시점은 <bean> 객체 생성 직후이다.

    Setter 인젝션이 동작하려면 Setter 메소드 뿐만 아니라 기본 생성자도 반드시 필요하다.

    Setter 메소드 이름 name 속성값
    setSpeaker() name="speaker"
    setAddressList() name="addressList"
    setBoardDAO() name="boardDAO"

     

    p 네임스페이스 사용하기

    p 네임스페이스 : 네임스페이스에 대한 별도의 schemaLocation이 없다.

     

     

    4. 컬렉션(Collection) 객체 설정

    컬렉션 유형 엘리먼트
    java.util.List, 배열 <list>
    java.util.Set <set>
    java.util.Map <map>
    java.util.Properties <props>

     

     

    'SPRING' 카테고리의 다른 글

    어드바이스 동작 시점  (0) 2021.05.25
    AOP 용어  (0) 2021.05.25
    어노테이션  (0) 2021.05.24
    스프링 컨테이너  (0) 2021.05.21
    프레임워크  (0) 2021.05.20
Designed by Tistory.