[스프링프레임워크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();
}
}
댓글 없음:
댓글 쓰기