이번 시간에는 생성자를 통한 주입에 대해서 공부해 볼것이다.
--> 이렇게 빈(bean)을 정의를 할떄, 생성자나 뭐 다른거를 지정해가주고 값을 넣어주는 것 이것을 주입이라고 한다.
MainClass.java
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) {
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("kr/co/softcampus/config/beans.xml");
TestBean t1 = new TestBean();
t1.printData();
System.out.println("--------------------");
TestBean t2 = new TestBean(100);
t2.printData();
System.out.println("--------------------");
TestBean t3 = new TestBean(11.11);
t3.printData();
TestBean obj1 = ctx.getBean("obj1",TestBean.class);
obj1.printData();
System.out.println("--------------------");
TestBean obj2 = ctx.getBean("obj2",TestBean.class);
obj2.printData();
System.out.println("--------------------");
TestBean obj3 = ctx.getBean("obj3",TestBean.class);
obj3.printData();
System.out.println("--------------------");
ctx.close();
}
}
TestBean.java
package kr.co.softcampus.beans;
public class TestBean {
private int data1;
private double data2;
private String data3;
public TestBean() {
// TODO Auto-generated constructor stub
System.out.println("TestBean의 기본 생성자 ");
this.data1 = 0;
this.data2 = 0.0;
this.data3 = null;
}
public TestBean(int data1) {
System.out.println("TestBean의 생성자: int 변수 1개 ");
this.data1 = data1;
this.data2 = 0.0;
this.data3 = null;
}
public TestBean(double data2) {
System.out.println("TestBean의 생성자: double 변수 1개 ");
this.data1 = 0;
this.data2 = data2;
this.data3 = null;
}
public TestBean(String data3) {
System.out.println("TestBean의 생성자: String 변수 3개 ");
this.data1 = 0;
this.data2 = 0;
this.data3 = data3;
}
public void printData() {
System.out.printf("data1 : %d\n",data1);
System.out.printf("data2 : %d\n",data2);
System.out.printf("data3 : %d\n",data3);
}
}
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"
default-init-method="default-init" default-destroy-method="default-destroy">
<bean id = "obj1" class="kr.co.softcampus.beans.TestBean" lazy-init="true"/>
<bean id = "obj2" class="kr.co.softcampus.beans.TestBean" lazy-init="true">
<constructor-arg value="100"/>
</bean>
<bean id= 'obj3' class="kr.co.softcampus.beans.TestBean" lazy-init="true">
<constructor-arg value='11.11'/>
</bean>
</beans>
--> 정리하자면, 빈객체를 TestBean.java로 만든거를 beans.xml파일에서도 만들수 있다라는것을 보여준것이다..!
beans.xml 추가
<bean id= "obj8" class="kr.co.softcampus.beans.TestBean2" lazy-init="true">
<constructor-arg>
<bean class="kr.co.softcampus.beans.DataBean"/>
</constructor-arg>
</bean>
<constructor-arg>
<bean class="kr.co.softcampus.beans.DataBean"/>
</constructor-arg>
--> 여기에서 만든 빈은 첫번째 매개변수에 들어가서 TestBean2 클래스안의 매개변수로 인지되서 실행이 된다.
'웹 프로그래밍(풀스택-->java) > 웹프로그래밍(백엔드-->java)' 카테고리의 다른 글
57. 컬렉션 주입 (0) | 2021.12.22 |
---|---|
56. Setter 메서드를 통한 주입 (0) | 2021.12.20 |
54. BeanPostProcessor (0) | 2021.12.20 |
53. 빈(Bean) 객체의 생명주기 (0) | 2021.12.20 |
52. 빈 객체 생성하기 (0) | 2021.12.19 |