https://www.inflearn.com/

 

내용 출처

 

온라인 클래스 오픈 플랫폼, 인프런

인프런은 누구에게나 성장의 기회를 균등하게 부여하기 위해 만들어진 온라인 학습, 지식 공유 중개 플랫폼 입니다. 개발, 프로그래밍, IT, 영상 편집, 그로스 해킹, 블록체인, 마케팅, 디자인, 금융, 투자 등 온라인 수업을 듣고 낡은 지식이 아닌 현업 전문가가 가르치는 현업에서 쓰이는 실전 강의를 시간적, 경제적 제약 없이 어디서든 학습하세요. 세상에 알리고 싶은 지식을 온라인 강의로 제작하고 20만명 이상의 인프런 회원에게 공개해보세요. 지식 공유를

www.inflearn.com


 의존 주입 (Dependency Injection)

프로그래밍에서 객체를 만들어서 외부에서 따로 주입하는 방식


제일 안좋은 프로그램 : 변경이 쉽지 않은 프로그램

1. 배터리 일체형 - 장난감 자동차 (배터리가 떨어지면 장난감을 새로 구입해야함) 의존성이 큼

 

생성자에서 객체에 주입

public class ElectronicCarToy {
	private Battery battery;
    
    public ElectroniCarToy() {
    	battery = new NormalBattery();
    }
}

2. 배터리 분리형

setter 메서드에서 객체에 주입

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

3. 배터리 분리형 - 공장에서 미리 배터리를 넣어놓고, 원할 때 교체

 

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

스프링에서의 의존주입

스프링 컨테이너에서 주입하고 의존하는 관계

 

1. 스프링 DI 설정

  ㄱ) 스프링 설정파일 (XML) 파일

  ㄴ) GenericXmlApplicationContext 로 파일을 읽음

  ㄷ) 스프링 컨테이너에서 큰 객체에 작은 객체가 들어있는 것을 보고 (주입이 되어있다고 함)

  ㄹ) 사용할 때는 getBean라고 사용하고, 객체를 생성할 때는 Bean사용