본문 바로가기

Dev/Spring

[Spring] DI(Dependency injection)

DI

  • OOP의 프로그램에서 프로그래밍을 하는 방법론 중 하나
  • JAVA계열을 사용한 경험이 있다면 DI를 사용해봤을 것
  • 객체지향 프로그램의 유연성, 필요에 따라 분리 및 확장 가능(인터페이스)

 

주입 방법 코드 예시

1) set

public class test1{
    private Battery battery;

    public ElectronicRobotToy(){
    }

    public void setBattery(Battery battery){
        this.battery = battery;
    }
}

2) 생성자 + set

public class test2{
    private Battery battery;

    public ElectronicRadioToy(Battery battery){
        this.battery = battery;
    }

    public void setBattery(Battery battery){
        this.battery = battery;
    }
}

 

SPRING DI 설정

<constructor-arg ref=""></constructor-arg>
  • 스프링 설정파일(xml) > 스프링 컨테이너(bean 객체) > 작은 객체가 큰 객체에 의존 > DI가 이루어진 상태 > getBean 사용하여 객체 불러오기
  • 스프링의 특징을 이용하여 context.xml에 선언 > 간단하고 유연한 프로그래밍
  • 생성자를 통해 bean을 주입 받는 경우 constructor-arg
  • ref 속성은 사용하려는 객체ID 기재
반응형