Spring

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

Vouloir 2021. 7. 17. 18:40

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

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

 

바로 실습!

 

실습

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
*/

 

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

 

끝!