Spring学习笔记 2007-10-22

Spring学习笔记 2007-10-22

之前的例子比较简单,打算了解一下Spring的基本用法。Spring的依赖注入有三种实现方式,常用是setter和construct方式。对于像数组和集合对象注入,注入前必须填充一些对象到集合中,然后再把集合注入到Bean,采用setter方式来完成。
通过一个例子来说明。
导入Spring所需的包:commons-logging.jar,spring.jar 。(日志包和Spring包)
包下载地址:
http://www.ziddu.com/download/3555993/Spring.rar.html
(1)创建ObjectSet类
package com.set;

public class ObjectSet {
 private String name;

 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public String toString()
 {
  return name;
 }
}
(2)创建SomeBean类
package com.set;

import java.util.List;
import java.util.Map;

public class SomeBean {
 private String[] someStrArray;
 private ObjectSet[] someObjArray;
 private List someList;
 private Map someMap;
 public SomeBean()
 {}
 public List getSomeList() {
  return someList;
 }
 public void setSomeList(List someList) {
  this.someList = someList;
 }
 public Map getSomeMap() {
  return someMap;
 }
 public void setSomeMap(Map someMap) {
  this.someMap = someMap;
 }
 public ObjectSet[] getSomeObjArray() {
  return someObjArray;
 }
 public void setSomeObjArray(ObjectSet[] someObjArray) {
  this.someObjArray = someObjArray;
 }
 public String[] getSomeStrArray() {
  return someStrArray;
 }
 public void setSomeStrArray(String[] someStrArray) {
  this.someStrArray = someStrArray;
 }
}
(3)在类路径下,创建set-config.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="first_object" class="com.set.ObjectSet" >
 <property name="name">
    <value>ducklyl</value>
 </property>
</bean>
<bean id="second_object" class="com.set.ObjectSet" >
 <property name="name">
    <value>wangsp</value>
 </property>
</bean>

<bean id="someBean" class="com.set.SomeBean" >
 <property name="someStrArray">
    <list>
     <value>Hello</value>
     <value>Welcome</value>
    </list>
 </property>
 <property name="someObjArray">
  <list>
   <ref bean="first_object"/>
   <ref bean="second_object"/>
  </list>
 </property>
 <property name="someList">
  <list>
   <value>ListTest</value>
   <ref bean="first_object"/>
   <ref bean="second_object"/>
  </list>
 </property>
 <property name="someMap">
  <map>
   <entry key="first">
    <value>Hello,ducklyl!</value>
   </entry>
   <entry key="second">
    <ref bean="first_object"/>
   </entry>
  </map>
 </property>
</bean>
</beans>
(4)创建测试类SpringTest

package com.set;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import java.util.*;

public class SpringTest {
 public static void main(String[] args)
 {
 //读取配置文件
 ApplicationContext context=new FileSystemXmlApplicationContext("set-config.xml");
 //获取id="setBean"对象
 SomeBean someBean=(SomeBean)context.getBean("someBean");
 
    //获取someStrArray,someObjArray
 String[] strs=someBean.getSomeStrArray();
 ObjectSet[] some=someBean.getSomeObjArray();
 
 for(int i=0;i<strs.length;i++)
 System.out.println(strs[i]+","+some[i]);
 
    //获取someList
 List someList=(List)someBean.getSomeList();
 for(int i=0;i<someList.size();i++)
  System.out.println(someList.get(i));
 
 //获取someMap
 Map someMap=someBean.getSomeMap();
 System.out.println(someMap);
 
}
}

如果以上配置正确,运行测试程序,结果如下:
Hello,ducklyl
Welcome,wangsp
ListTest
ducklyl
wangsp
{first=Hello,ducklyl!, second=ducklyl}

你可能感兴趣的:(Spring学习笔记 2007-10-22)