SW/Java

Java : Spring : Bean : Setter 메서드를 통한 의존성 주입 : 예제, 구현

얇은생각 2020. 4. 29. 19:30
반응형

Setter 메서드를 통한 주입

Bean을 정의할 떄 Bean 객체가 있을 기본 값을 생성자가 아닌 Setter 메서드를 통해 주입할 수 있습니다.

 

 

TestBean

package kr.co.softcampus.beans;

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

	public int getData1() {
		return data1;
	}

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

	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 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;
	}
	
	
}

 

 

DataBean

package kr.co.softcampus.beans;

public class DataBean {

}

 

 

beans.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	                    http://www.springframework.org/schema/beans/spring-beans.xsd">
	                    
	
	<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'/>
	
</beans>

 

 

MainClass

package kr.co.softcampus.main;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import kr.co.softcampus.beans.TestBean;

public class MainClass {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		TestBean obj1 = new TestBean();
		obj1.setData1(100);
		
		System.out.printf("obj1.data1 : %d\n", obj1.getData1());
		
		ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("kr/co/softcampus/config/beans.xml");
		
		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());
		
		ctx.close();
	}

}

 

Java : Spring : Bean : Setter 메서드를 통한 의존성 주입 : 예제, 구현

 

이번 시간에는 setter를 통해서 의존성을 주입하는 방법에 대해 배워보았습니다. 생성자 뿐만아니라, setter 역시 주어진 규칙에 맞게 메타데이터를 생성하면 활용 가능하다는 것을 알게 되었습니다. 

setter 방식이 생각보다 타이핑은 조금 더 들어가지만 좀 더 직관적이다라는 느낌을 받았습니다. 하지만, 규칙에 맞게 구현하지 않는다면 오류의 여지가 있다는 것도 알게 되었습니다.

반응형