1,首先準備幾個bean類:
package com.svse.spring.ioc;
(1)
public class Dog {
public void sound()
{
System.out.println("wang wang wang....");
}
}
(2)
package com.svse.spring.ioc;
public class User {
private String userName = null;
private int userAge = 0;
private Dog dog = null;
public User()
{
System.out.println("user constructor() called.");
}
/**
* 調用setter方法注入值
* @param userName
*/
public void setUserName(String userName)
{
System.out.println("setUserName() called.");
this.userName = userName;
}
/**
* 調用setter方法注入值
* @param userAge
*/
public void setUserAge(int userAge)
{
System.out.println("setUserAge() called.");
this.userAge = userAge;
}
/**
* 調用setter方法注入值
* @param dog
*/
public void setDog(Dog dog) {
this.dog = dog;
}
public void doDog()
{
this.dog.sound();
}
}
(3)
package com.svse.spring.ioc;
public class User1 {
private String userName = null;
private int userAge = 0;
private Dog dog = null;
public User1(String userName,int userAge,Dog dog) {
this.userName = userName;
this.userAge = userAge;
this.dog = dog;
System.out.println("userName:" + userName + "," + "userAge:" + userAge);
this.dog.sound();
}
}
(4)
package com.svse.spring.ioc;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class User2 {
private List myList = null;
private Map myMap = null;
public void setMyList(List myList) {
this.myList = myList;
}
public void setMyMap(Map myMap) {
this.myMap = myMap;
}
public void print()
{
System.out.println("-------list-------");
for(int i = 0 ; i < myList.size(); i++)
{
String s = (String)myList.get(i);
System.out.println(s);
}
System.out.println("-------list-------");
System.out.println("-------map-------");
for(Iterator it = myMap.keySet().iterator(); it.hasNext();)
{
String key = (String)it.next();
String value = (String)this.myMap.get(key);
System.out.println("key:" + key + "," + "value:" + value);
}
System.out.println("-------map-------");
}
}
2,在所建工程中添加spring-core.jar、 spring-beans.jar 、spring-context.jar包
在applicationContext.xml檔案中對上面的具體實作類別進行裝配:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="dogInstance" class="com.svse.spring.ioc.Dog"></bean>
<!--
User user = new User();
user.setUserName("jason");
user.setUserAge(22);
-->
<bean id="user" class="com.svse.spring.ioc.User" >
<property name="userName" value="jason"></property>
<property name="userAge" value="22"></property>
<property name="dog" ref="dogInstance"></property>
</bean>
<!--
User1 user1 = new User1("david",26,dog);
-->
<bean id="user1" class="com.svse.spring.ioc.User1">
<constructor-arg type="java.lang.String" value="david"></constructor-arg>
<constructor-arg type="int" value="26"></constructor-arg>
<constructor-arg type="com.svse.spring.ioc.Dog" ref="dogInstance"></constructor-arg>
</bean>
<!-- 注入集合 -->
<bean id="user2" class="com.svse.spring.ioc.User2">
<property name="myList">
<list>
<value>list1</value>
<value>list2</value>
<value>list3</value>
<value>list4</value>
<value>list5</value>
</list>
</property>
<property name="myMap">
<map>
<entry key="aKey" value="aValue"></entry>
<entry key="bKey" value="bValue"></entry>
<entry key="cKey" value="cValue"></entry>
<entry key="dKey" value="dValue"></entry>
</map>
</property>
</bean>
</beans>
3,編寫測試類別
package com.svse.spring.ioc;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class IOCMain {
/**
* 測試
*/
public static void main(String[] args) {
ApplicationContext context =
new ClassPathXmlApplicationContext("applicationContext.xml");
// User user = (User)context.getBean("user");
// user.doDog();
//User1 user1 = (User1)context.getBean("user1");
User2 user2 = (User2)context.getBean("user2");
user2.print();
}
}