spring中Bean的幾種配置(ioc原理續)

來源:互聯網
上載者:User

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

}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.