发新话题

Spring里面注入集合

beans.xml

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    
    <!-- oracle bean used for a few examples -->
    <bean id="oracle" name="wiseworm" class="BookwormOracle"/>

    <!-- collection injection samples -->
    <bean id="injectCollection" class="CollectionInjection">
        <property name="map">
            <map>
                <entry key="someValue">
                    <value>Hello World!</value>
                </entry>
                <entry key="someBean">
                    <ref local="oracle"/>
                </entry>
            </map>
        </property>
        <property name="props">
            <props>
                <prop key="firstName"> Rob </prop>
                <prop key="secondName"> Harrop </prop>
            </props>
        </property>
        <property name="set">
            <set>
                <value>Hello World!</value>
                <ref local="oracle"/>
            </set>
        </property>
        <property name="list">
            <list>
                <value>Hello World!</value>
                <ref local="oracle"/>
            </list>
        </property>
    </bean>
</beans>
public interface Oracle {
  public String defineMeaningOfLife();
}
public class Encyclopedia {
}
public class BookwormOracle implements Oracle {
  private Encyclopedia enc;

  public void setEncyclopedia(Encyclopedia enc) {
    this.enc = enc;
  }

  public String defineMeaningOfLife() {
    return "Encyclopedia's are a waste of money - use the Internet";
  }
}
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.FileSystemResource;

public class CollectionInjection {
  private Map map;

  private Properties props;

  private Set set;

  private List list;

  public static void main(String[] args) {
    BeanFactory factory = new XmlBeanFactory(new FileSystemResource("build/beans.xml"));
    CollectionInjection instance = (CollectionInjection) factory.getBean("injectCollection");
    instance.displayInfo();
  }

  public void setList(List list) {
    this.list = list;
  }

  public void setSet(Set set) {
    this.set = set;
  }

  public void setMap(Map map) {
    this.map = map;
  }

  public void setProps(Properties props) {
    this.props = props;
  }

  public void displayInfo() {
    // display the Map
    Iterator i = map.keySet().iterator();
    System.out.println("Map contents:\n");
    while (i.hasNext()) {
      Object key = i.next();
      System.out.println("Key: " + key + " - Value: " + map.get(key));
    }
    // display the properties
    i = props.keySet().iterator();
    System.out.println("\nProperties contents:\n");
    while (i.hasNext()) {
      String key = i.next().toString();
      System.out.println("Key: " + key + " - Value: " + props.getProperty(key));
    }
    // display the set
    i = set.iterator();
    System.out.println("\nSet contents:\n");
    while (i.hasNext()) {
      System.out.println("Value: " + i.next());
    }
    // display the list
    i = list.iterator();
    System.out.println("\nList contents:\n");
    while (i.hasNext()) {
      System.out.println("Value: " + i.next());
    }
  }
}
快乐渡过每一天,减肥坚持每一天



编辑 回复 快速回复 TOP
你好“紫竹”
我想请问你下,在spring2.5中,要用到<context:component-scan base-package="XXX"/>
而且我引用了context 命名空间但是没有提示,怎么回事?
编辑 回复 快速回复 TOP
看一下你XML头标签有没有加上...
编辑 回复 快速回复 TOP
发新话题