package test;
public class Gong implements People {
public void eyesOn(){
System.out.println("Gong eyesOn메소드 샐행");
}
public void eyesOff(){
System.out.println("Gong eyesOff메소드 샐행");
}
}
//-----------------------------------------
package test;
public class Dong implements People {
public void eyesOn(){
System.out.println("Dong eyesOn메소드 샐행");
}
public void eyesOff(){
System.out.println("Dong eyesOff메소드 샐행");
}
}
package test;
public interface People {
void eyesOn();
void eyesOff();
}
<?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="pD" class="test.Dong" />
<bean id="pG" class="test.Gong" />
<!-- lazy-init="true" init-method="initM" destroy-method="destroyM" -->
</beans>
package test;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;
import polymorphism.TV;
public class PeopleClient {
public static void main(String[] args) {
AbstractApplicationContext a = new GenericXmlApplicationContext("test/testContext.xml");
// BeanFactory factory = new BeanFactory();
People pd = (People) a.getBean("pD"); // Spring 자동 제공
People pg = (People) a.getBean("pG"); // Spring 자동 제공
pd.eyesOff();
pd.eyesOn();
pg.eyesOn();
pg.eyesOn();
p = (People) a.getBean("pD"); // Spring 자동 제공
p.eyesOn();
p.eyesOn();
a.close();
}
}
객체를 얻어온다.
package com.springbook.ioc.injection;
import java.util.Map;
public class CollectionBean {
private List<String> addressList;
private Set<String> addressList;
private Map<String, String> addressList;
private Properties addressList;
// List 타입 매핑
public void setAddressList(List<String> addressList) {
this.addressList = addressList;
}
public List<String> getAddressList() {
return addressList;
}
// Set 타입 매핑
public void setAddressList(Set<String> addressList) {
this.addressList = addressList;
}
public Set<String> getAddressList() {
return addressList;
}
// Map 타입 매핑
public void setAddressList(Map<String, String> addressList) {
this.addressList = addressList;
}
public Map<String, String> getAddressList() {
return addressList;
// Properties 타입 매핑
public void setAddressList(Properties addressList) {
this.addressList = addressList;
}
public Properties getAddressList() {
return addressList;
}
}
package com.springbook.ioc.injection;
import java.util.Map;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;
public class CollectionBeanClient {
public static void main(String[] args) {
AbstractApplicationContext factory = new GenericXmlApplicationContext("collectionContext.xml");
CollectionBean bean = (CollectionBean) factory.getBean("collectionBean");
CollectionBean bean1 = new CollectionBean();
List<String> addressList1 = new ArrayList<String>();
addressList1.add("1");
addressList1.add("2");
addressList1.add("3");
addressList1.add("4");
addressList1.add("5");
bean1.setAddressList(addressList1);
for(String address : addressList1) {
System.out.println("address: " +address);
}
// List 타입 매핑
List<String> addressList = bean.getAddressList();
for (String address : addressList) {
System.out.println(address.toString());
}
// Set 타입 매핑
Set<String> addressList = bean.getAddressList();
for (String address : addressList) {
System.out.println(address.toString());
}
// Map 타입 매핑 *Map<Key, Value>
Map<String, String> addressList = bean.getAddressList();
for (Map.Entry<String, String> address : addressList.entrySet() ) {
}
System.out.println(String.format("Key : %s, Value : %s", address.getKey(), address.getValue()));
for(String s: addressList.keySet()){
System.out.println(s);
}
for(String s: addressList.values()){
System.out.println(s);
}
// Properties 타입 매핑 *제네릭 타입 올 수 없다.
Properties addressList = bean.getAddressList(); for (Map.Entry address :
addressList.entrySet() ) {
System.out.println(String.format("Key : %s, Value : %s", address.getKey(),
address.getValue())); }
factory.close();
}
}
<?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="collectionBean"
class="com.springbook.ioc.injection.CollectionBean">
<property name="addressList">
<!-- List 타입 매핑 * -->
<list>
<value>서울시 강남구 역삼동</value>
<value>서울시 성동구 행당동</value>
</list>
<!-- Set 타입 매핑 *중복허용?" -->
<set value-type="java.lang.String">
<value>서울시 강남구 역삼동</value>
<value>서울시 성동구 행당동</value>
<value>서울시 성동구 행당동</value>
</set>
<!-- Map 타입 매핑 -->
<map>
<entry>
key element
<key>
<value>고길동</value>
</key>
<value>서울시 강남구 역삼동</value>
</entry>
<entry>
<key>
<value>마이콜</value>
</key>
<value>서울시 강서구 화곡동</value>
</entry>
</map>
<!-- Properties 타입 매핑 -->
<props>
<prop key="고길동">서울시 강남구 역삼동</prop>
<prop key="마이콜">서울시 강서구 화곡동</prop>
</props>
</property>
</bean>
</beans>
p:변수명-ref="참조할 객체의 이름이나 아이디"
p:변수명="설정할 값"
List
list - value
Set
set - value
Map
map - entry - key{value}, value
Properties
props - prop[key]{}