KOSTA : 클라우드 네이티브 애플리케이션 개발 전문가 양성과정
06/13 42일차 Spring / DI방식/ DI가 왜 필요함?
람대리
2024. 6. 13. 09:55
728x90
public class Remocon{
Remocon(){}
int volume = 3;
void chmove(LG s){
Samsung s = new Sumsung();
Lg s = new Lg();
s.move();
}
}
public interface TV{
abstract void chmove(TV o);
}
public class Samsung implements TV{
@Override
void chmove(TV o){}
}
main(String[] args){
Remocon r = new Remocon();
r.chmove(new Samsung());
// <bean name="sss" class="com.kosa.Remocon">
// servet-context.xml
// new samsung() == <bean name="ddd" class="com.kosa.Samsung"/> 이걸 어떻게 넣을꺼냐 이게 DI이다
//r.chmove(new Lg());
}
- 다형성을 이용하라
- 파라미터로 부모계층을 올리자
-- 새로 배울 내용
setter(프로퍼티), constructor(생성자)
private TV obj;
public void setObjc(TV tt){
this.obj = tt;
}
xml에서 어떻게 자바로 넣어줄꺼냐??
public void setInstance()
private String name;
public void setName(String name){
this.name = name;
}
new 된 객체를 파라미터에 넣어줘라 이게 DI이다 마
# DI 프로퍼티 방식
#DI 생성자 방식
#DI 관련 주요 클래스
Spring container : 객체를 관리하는 컨테이너
bean을 new로 만드는 클래스
#면접 질문 : DI 왜 써요??
- 모든 프로그램을 개발하는 데 있어서 두가지를 봅니다. 결합도, 응집도
- 응집도란 얼마나 유관 기관을 뭉쳐있나...findUserId, findUserpw,UserCart(x) 응집도 높을수록 좋다
- 결합도란 누구껄 가져와 합치는 것을 말한다. 쟤꺼가 꼭 있어야 돼 결합도는 낮을수록 좋다.
- DI를 사용함으로써 결합도를 낮출 수 있다.
- Container에게 결합을 위임시킴으로써 직접 결합하지않으므로 결합도를 낮출 수 있습니다.
- Spring container가 인스턴스를 생성하여 결합
- 해당하는 다형성원리로 인터페이스에만 의존하게 된다.
- 느슨한 결합