Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- customclass
- FLASK
- AJAX
- 딩동말씀
- Swift
- DispatchGroup
- iOS앱배포
- 파이썬서버
- ios
- spring
- 웹
- JavaScript
- 맥
- FileOwner
- 자바스크립트
- Xcode
- 스위프트
- 앱배포
- iOS계산기
- 스프링
- MainScheduler
- Xib
- Python
- 계산기앱만들기
- iOS배포
- subscript
- 개발기록
- 계산기앱
- 앱버전구하기
- jQuery
Archives
- Today
- Total
개발하는 뚝딱이
스프링 6.DI(Dependency injection) 본문
DI(Dependency Injection)란?
ex) 장난감
배터리 일체형 → 배터리가 떨어지면 장난감을 새로 구입해야 한다
배터리 분리형 → 배터리가 떨어지면 배터리만 교체하면 된다
객체를 통해 많은 기능을 구현할 수 있으며, 객체 하나하나마다 프로그램에 엮여 있다.
배터리 분리형 → 배터리라는 객체에 의존함 [의존주입] (배터리를 주입함)
▶ 좀 더 유연성있고 단단한 프로그래밍
/* 배터리 일체형 */
public class ElectronicCarToy {
private Battery battery;
public ElectronicCarToy() {
battery = new NormalBattery();
}
}
/* 배터리 분리형 */
public class ElectronicRobotToy {
private Battery battery;
public ElectronicRobotToy() {
}
public void setBattery(Battery battery) {
this.battery = battery;
}
}
/* 배터리 분리형 */
public class ElectronicRadioToy {
private Battery battery;
public ElectronicRadioToy(Battery battery) {
this.battery = battery;
}
public void setBattery(Battery battery) {
this.battery = battery;
}
}
스프링 DI 설정 방법
스프링 컨테이너 생성 및 빈(Bean) 객체 호출 과정
- 스프링 설정파일 (applicationContext.xml) → GenericXmlApplicationContext → Spring Container [ 객체, 객체, 객체, ... ] → getBean() 메소드를 통해 가져다 쓸 수 있음 → 빈(Bean) 객체를 필요로 하는 로직
클래스 구조
- Main class → 조립기[Java언어 이용], 조립기[xml언어 이용 - applicationContext] → service 클래스 → DAO클래스
<bean id="studentDao" class="ems.member.dao.StudentDao" ></bean>
<bean id="registerService" class="ems.member.service.StudentRegisterService">
<constructor-arg ref="studentDao" ></constructor-arg>
</bean>
<bean id="modifyService" class="ems.member.service.StudentModifyService">
<constructor-arg ref="studentDao" ></constructor-arg>
</bean>
<bean id="deleteService" class="ems.member.service.StudentDeleteService">
<constructor-arg ref="studentDao" ></constructor-arg>
</bean>
<bean id="selectService" class="ems.member.service.StudentSelectService">
<constructor-arg ref="studentDao" ></constructor-arg>
</bean>
<bean id="allSelectService" class="ems.member.service.StudentAllSelectService">
<constructor-arg ref="studentDao" ></constructor-arg>
</bean>
public StudentRegisterService(StudentDao studentDao) {
this.studentDao = studentDao;
}
public StudentModifyService(StudentDao studentDao) {
this.studentDao = studentDao;
}
public StudentDeleteService(StudentDao studentDao) {
this.studentDao = studentDao;
}
public StudentSelectService(StudentDao studentDao) {
this.studentDao = studentDao;
}
public StudentAllSelectService(StudentDao studentDao) {
this.studentDao = studentDao;
}
'웹' 카테고리의 다른 글
[Javascript] - 날짜, 시간구하기 Date get method (0) | 2019.10.06 |
---|---|
스프링 7. 다양한 의존 객체 주입 (0) | 2019.08.29 |
스프링 4.자바를 이용한 프로젝트 생성 5.폴더로 프로젝트 생성 (0) | 2019.08.28 |
스프링 3.스프링 프로젝트 생성 (0) | 2019.08.27 |
스프링 2. 스프링 프레임워크 (0) | 2019.08.27 |