package di.dto;
public class AddressDTO {
private String zipcode;
private String address;
public AddressDTO(String zipcode, String address) {
super();
this.zipcode = zipcode;
this.address = address;
}
public AddressDTO() {
}
@Override
public String toString() {
return "AddressDTO [zipcode=" + zipcode + ", address=" + address + "]";
}
}
package di.dto;
public class PersonDTO {
private String name;
private int age;
private AddressDTO address;
public PersonDTO(int age) {
this.age = age;
}
public PersonDTO(String name) {
this.name = name;
}
public PersonDTO(AddressDTO address) {
super();
this.address = address;
}
public PersonDTO(String name, int age, AddressDTO address) {
super();
this.name = name;
this.age = age;
this.address = address;
}
@Override
public String toString() {
return "PersonDTO [name=" + name + ", age=" + age + ", address="
+ address + "]";
}
}
<?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-3.0.xsd">
<!-- AddressDTO -->
<!-- no-arg 생성자 호출 하여 객체 생성 -->
<bean name="address1" class="di.dto.AddressDTO"/>
<bean name="address2" class="di.dto.AddressDTO">
<constructor-arg>
<value>111-222</value>
</constructor-arg>
<constructor-arg>
<value>서울시 송파구 가락동</value>
</constructor-arg>
</bean>
<!-- PersonDTO -->
<bean name="person1" class="di.dto.PersonDTO">
<constructor-arg value="홍길동"/>
</bean>
<bean name="person2" class="di.dto.PersonDTO">
<constructor-arg value="30"/>
</bean>
<bean name="person3" class="di.dto.PersonDTO">
<constructor-arg type="int" value="30"/>
</bean>
<bean name="person4" class="di.dto.PersonDTO">
<constructor-arg>
<ref bean="address2"/>
</constructor-arg>
</bean>
<bean name="person5" class="di.dto.PersonDTO">
<constructor-arg>
<value>이순신</value>
</constructor-arg>
<constructor-arg>
<value type="int">30</value>
</constructor-arg>
<constructor-arg>
<ref bean="address2"/>
</constructor-arg>
</bean>
<bean name="person6" class="di.dto.PersonDTO">
<constructor-arg>
<bean class="di.dto.AddressDTO">
<constructor-arg value="233-222"/>
<constructor-arg value="성남시 분당구 판교동"/>
</bean>
</constructor-arg>
</bean>
<bean name="person7" class="di.dto.PersonDTO">
<constructor-arg value="장동건"/>
<constructor-arg type="int" value="30"/>
<constructor-arg>
<bean class="di.dto.AddressDTO">
<constructor-arg value="555-555"/>
<constructor-arg value="서울시 중랑구 면목동"/>
</bean>
</constructor-arg>
</bean>
</beans>
package di.main;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import di.dto.AddressDTO;
import di.dto.PersonDTO;
public class TestPerson {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("di/dto/config/person.xml");
AddressDTO ato1 = (AddressDTO) ctx.getBean("address1");
System.out.println(ato1);
AddressDTO ato2 = (AddressDTO) ctx.getBean("address2");
System.out.println(ato2);
PersonDTO pto = (PersonDTO) ctx.getBean("person1");
System.out.println(pto);
pto = (PersonDTO) ctx.getBean("person2");
System.out.println(pto);
pto = (PersonDTO) ctx.getBean("person3");
System.out.println(pto);
pto = (PersonDTO) ctx.getBean("person4");
System.out.println(pto);
pto = (PersonDTO) ctx.getBean("person5");
System.out.println(pto);
pto = (PersonDTO) ctx.getBean("person6");
System.out.println(pto);
pto = (PersonDTO) ctx.getBean("person7");
System.out.println(pto);
}
}
* 결과보기
AddressDTO [zipcode=null, address=null]
AddressDTO [zipcode=111-222, address=서울시 송파구 가락동]
PersonDTO [name=홍길동, age=0, address=null]
PersonDTO [name=30, age=0, address=null]
PersonDTO [name=null, age=30, address=null]
PersonDTO [name=null, age=0, address=AddressDTO [zipcode=111-222, address=서울시 송파구 가락동]]
PersonDTO [name=이순신, age=30, address=AddressDTO [zipcode=111-222, address=서울시 송파구 가락동]]
PersonDTO [name=null, age=0, address=AddressDTO [zipcode=233-222, address=성남시 분당구 판교동]]
PersonDTO [name=장동건, age=30, address=AddressDTO [zipcode=555-555, address=서울시 중랑구 면목동]]