본문 바로가기

Spring

DI(Dependency Injection) Setter메서드를 통한 주입

인터넷 강의를 듣고 공부한 내용을 포스팅합니다.

'윤재성의 스프링 프레임워크 개발자를 위한 실습을 통한 입문 과정' 이란 강의를 듣고 있습니다.

 

바로 실습!

 

실습

public class TestBean {
	
	private int data1;
	private double data2;
	private boolean data3;
	private String data4;
	private DataBean data5;
	private DataBean data6;

	public double getData2() {
		return data2;
	}

	public void setData2(double data2) {
		this.data2 = data2;
	}

	public boolean isData3() {
		return data3;
	}

	public void setData3(boolean data3) {
		this.data3 = data3;
	}

	public String getData4() {
		return data4;
	}

	public void setData4(String data4) {
		this.data4 = data4;
	}

	public int getData1() {
		return data1;
	}

	public void setData1(int data1) {
		this.data1 = data1;
	}

	public DataBean getData5() {
		return data5;
	}

	public void setData5(DataBean data5) {
		this.data5 = data5;
	}

	public DataBean getData6() {
		return data6;
	}

	public void setData6(DataBean data6) {
		this.data6 = data6;
	}
	

}

이건 뭐 직접 입력해줘도 되지만 이클립스에서 쉽게 하는 방법이 있습니다.

우클릭 > Source > Generate getters and setters 들어가서 필요한 getter,setter 만들어 주심 됩니다.

 

<bean id="t1" class="kr.co.softcampus.beans.TestBean">
	<property name="data1" value="100"/>
	<property name="data2" value="11.11"/>
	<property name="data3" value="true"/>
	<property name="data4" value="안녕하세요"/>
	<property name="data5">
		<bean class="kr.co.softcampus.beans.DataBean"/>
	</property>
	<property name="data6" ref="data_bean"/>
</bean>			
	
<bean id="data_bean" class="kr.co.softcampus.beans.DataBean"/>

생성자 주입과 비슷합니다. 태그는 <property>태그를 이용합니다.

 

TestBean t1 = ctx.getBean("t1",TestBean.class);
System.out.printf("t1.data1 : %d\n",t1.getData1());
System.out.printf("t1.data2 : %f\n",t1.getData2());
System.out.printf("t1.data3 : %s\n",t1.isData3());
System.out.printf("t1.data4 : %s\n",t1.getData4());
System.out.printf("t1.data5 : %s\n",t1.getData5());
System.out.printf("t1.data6 : %s\n",t1.getData6());

/*
결과
t1.data1 : 100
t1.data2 : 11.110000
t1.data3 : true
t1.data4 : 안녕하세요
t1.data5 : kr.co.softcampus.beans.DataBean@3043fe0e
t1.data6 : kr.co.softcampus.beans.DataBean@78e67e0a
*/

 

생성자 주입과 비슷해서(저만 그렇게 느끼나요..) 이해하기 어렵지 않습니다.

 

끝!