[스프링프레임워크3.X IoC 강좌3]Spring IoC, 스프링 IoC, 스프링제어역행, Spring Framework3.2 Inversion Of Control
“오라클자바커뮤니티몰” 운영 시나리오 - 전략수정
나는 사업이 잘 안되었고 현대자동차도 매우 조건이 안 좋아서 대우자동차로 메이커를 변경하기로 했다.
1. DaewooMaker.java 클래스 생성
package edu.biz.ioc;
public class DaewooMaker implements CarMaker {
public DaewooMaker () {
}//:
}//:
public Car sell(Money money) {
System.out.println("I sold a car.");
Car car = new Car(“Tosca”);
return car;
}
}///~
System.out.println("I sold a car.");
Car car = new Car(“Tosca”);
return car;
}
}///~
2. OrderManager 클래스 수정
package edu.biz.ioc;
public class OrderManager {
private CarMaker maker;
private CarMaker maker;
public OrderManager(String name) {
this.maker = new DaewooMaker();
}
this.maker = new DaewooMaker();
}
public void order() {
Car car = this.maker.sell(new Money(1000));
}
Car car = this.maker.sell(new Money(1000));
}
}///~

3. OraderManager를 다음과 같이 수정
public class OrderManager {
private String name;
private CarMaker carMaker;
public OrderManager() {
}
public void order() {
Car car = this.carMaker.sell(new Money(1000));
}
//setter 메소드를 통해 CarMaker를 주입 받는다.
public void setCarMaker(CarMaker carMaker) {
this.carMaker = carMaker;
}
}///~
4. ioc.xml
<beans>
<bean id="hyundaiMaker" class=" edu.biz.ioc.HyundaiMaker"/>
<bean id=“daewooMaker" class=" edu.biz.ioc.daewooMaker"/>
<bean id="orderManager"
class=" edu.biz.ioc.OrderManager">
<property name="carMaker">
<ref bean="hyundaiMaker"/> <!– 이부분을 교체하면 소스코드 수정없이
CarMaker를 교체 가능!! à
</property>
</bean>
</beans>
5. orderManagerApp.java
import org.springframework.beans.factory.*;
import org.springframework.beans.factory.xml.*;
import org.springframework.core.io.*;
public class OrderManagerApp {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BeanFactory factory =
new XmlBeanFactory(new FileSystemResource("WEB-INF/ioc.xml"));
OrderManager manager =
(OrderManager)factory.getBean("orderManager");
manager.order();
}
}

![]() | ![]() ![]() | 12-27 | 2695 | |
![]() | ![]() ![]() | 12-11 | 1950 | |
53 | ![]() ![]() | 03-15 | 1772 | |
52 | ![]() ![]() | 01-31 | 1919 | |
51 | ![]() ![]() | 01-31 | 2801 | |
50 | ![]() ![]() | 01-31 | 1477 | |
49 | ![]() ![]() | 01-19 | 1811 | |
48 | ![]() ![]() | 01-11 | 1688 | |
47 | ![]() ![]() | 01-03 | 2230 | |
46 | ![]() ![]() | 12-27 | 2695 | |
45 | ![]() ![]() | 12-19 | 1911 | |
44 | ![]() ![]() | 12-14 | 1889 | |
43 | ![]() ![]() | 12-11 | 1950 | |
42 | ![]() ![]() | 12-09 | 1536 | |
41 | ![]() ![]() | 12-01 | 1759 | |
40 | ![]() ![]() | 12-01 | 1963 | |
39 | ![]() ![]() | 12-01 | 1405 |
댓글 없음:
댓글 쓰기