본문 바로가기

카테고리 없음

XML을 이용한 DI설정

자동차에서 핸들과 값을 지정한다. 이때 핸들 중에 어떤 핸들을 지정할지를 xml파일에다가 설정을 해준다.

먼저, 생성할 객체들을 bean태그를 이용해 지정해 준다.


1. <constructor-arg>태그


<bean id="car" class="com.javalec.car.HDCar">
	<!-- 핸들 중에서 das 핸들을 사용할 것, 생성자에 전달할 파라미터 값을 constructor-arg를 통해 설정-->
	<constructor-arg ref="das"></constructor-arg>
	<constructor-arg value="1000"></constructor-arg>
</bean>

<bean id="das" class="com.javalec.car.DASHandle"></bean>
<bean id="lg" class="com.javalec.car.LGHandle"></bean>


public class HDCar implements ICar {

	private IHandle handle;
	private int price;

  //생성자를 이용해 필요한 값을 전달받고 있다.

	public HDCar(DASHandle handle, int price) {

		this.handle = handle;
		this.price = price;

	}
}


2. <property>태그


<bean id="car" class="com.javalec.car.HDCar">
		<property name="handle" ref="lg"></property> <!-- ref : bean 객체의 id값 -->
		<property name="price" value="2000"></property>
</bean>

<bean id="das" class="com.javalec.car.DASHandle"></bean>
<bean id="lg" class="com.javalec.car.LGHandle"></bean>


public class HDCar implements ICar {

	private IHandle handle;
	private int price;

	public void setHandle(IHandle handle) {
		this.handle = handle;
	}

	public void setPrice(int price) {
		this.price = price;
	}
}




*DAO객체를 controller에 주입해보기


public class GuestBookController {

	private GuestBookDAO guestbookDao;

	public void setGuestbookDao(GuestBookDAO guestbookDao) {
		this.guestbookDao = guestbookDao;
	}
}


<bean id="GuestBookDAO" class="com.javalec.guestbook.dao.GuestBookDAO"></bean>

<bean id="GuestBook" class="com.javalec.guestbook.controller.GuestBookController">
		<property name="guestbookDao" ref="GuestBookDAO"></property>
</bean>