Spring+Maven学习实验- Spring 中将值注入集合类型(三)

本文内容纲要:Spring+Maven学习实验- Spring 中将值注入集合类型(三)

将值注入集合类型,包含以下四种主要的集合类型:

  • List ——
  • Set ——
  • Map ——
  • Properties ——
  • Image

1.pom.xml

2.编写 Person.java && Customer.java

package com.shiyanlou.spring.collections;

public class Person {

private String name;

private String address;

private int age;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getAddress() {

return address;

}

public void setAddress(String address) {

this.address = address;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

@Override

public String toString() {

return "Person [name=" + name + ", address=" + address + ", age=" + age + "]";

}

}

package com.shiyanlou.spring.collections;

import java.util.List;

import java.util.Map;

import java.util.Properties;

import java.util.Set;

public class Customer {

private List<Object> lists;//这里的lists要和Bean中的property标签的name一样

private Set<Object> sets;

private Map<Object,Object> maps;

private Properties pros;

public List<Object> getLists() {

return lists;

}

public void setLists(List<Object> lists) {

this.lists = lists;

}

public Set<Object> getSets() {

return sets;

}

public void setSets(Set<Object> sets) {

this.sets = sets;

}

public Map<Object, Object> getMaps() {

return maps;

}

public void setMaps(Map<Object, Object> maps) {

this.maps = maps;

}

public Properties getPros() {

return pros;

}

public void setPros(Properties pros) {

this.pros = pros;

}

private Person person;//不要忘记写内部要引用的Bean

public Customer(Person person){

this.person = person;

}

public Customer(){}

public Person getPerson() {

return person;

}

public void setPerson(Person person) {

this.person = person;

}

@Override

public String toString() {

return "Customer [person=" + person + "]";

}

}

注意: JavaBean 关于属性命名的特殊规范,spring 配置文件中 元素所指定的属性名和 Bean 实现类的 Setter 方法满足 Sun JavaBean 的属性命名规范: xxx 的属性对应 setXxx() 方法。一般情况下 Java 的属性变量名都以小写字母起头,如: maxSpeed 。但也存在特殊的情况,考虑到一些特定意义的大写英文缩略词(如: USA 、 XML ),JavaBean 也允许大写字母起头的属性变量名,不过必须满足: 变量的前两个字母要么全部大写,要么全部小写.如: iC 、 iCcard 、 iDcode 这些都不合法的。

3.编写 SpringCollections.xml

<?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-3.0.xsd">

<bean id="customerBean" class="com.shiyanlou.spring.collections.Customer">

<!-- java.util.List -->

<property name="lists">

<list>

<value>1</value> <!-- List 属性既可以通过 <value> 注入字符串,也可以通过 <ref> 注入容器中其他的 Bean-->

<ref bean="personBean"/>

<value>2</value>

<bean class="com.shiyanlou.spring.collections.Person">

<property name="name" value="testList"/>

<property name="address" value="Wuhan"/>

<property name="age" value="18"/>

</bean>

</list>

</property>

<!-- java.util.Set -->

<property name="sets">

<set>

<value>1</value>

<ref bean="personBean"/>

<bean class="com.shiyanlou.spring.collections.Person">

<property name="name" value="testSet"/>

<property name="address" value="Wuhan"/>

<property name="age" value="18"/>

</bean>

</set>

</property>

<!-- java.util.Map -->

<property name="maps">

<map>

<entry key="Key 1" value="1"/> <!--一个 entry 就是一个 Map 元素-->

<entry key="Key 2" value-ref="personBean"/>

<entry key="key 3">

<bean class="com.shiyanlou.spring.collections.Person">

<property name="name" value="testMap"/>

<property name="address" value="Wuhan"/>

<property name="age" value="18"/>

</bean>

</entry>

</map>

</property>

<property name="pros">

<props>

<prop key="admin">admin@nospam.com</prop>

<prop key="support">support@nospam.com</prop>

</props>

</property>

</bean>

<bean id="personBean" class="com.shiyanlou.spring.collections.Person">

<property name="name" value="shiyanlouPersonBean" />

<property name="address" value="chengdu" />

<property name="age" value="25" />

</bean>

</beans>

4.编写测试类App.java

package com.shiyanlou.spring.collections;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App {

private static ApplicationContext context;

public static void main(String[] args) {

context = new ClassPathXmlApplicationContext("SpringCollections.xml");

/*

* 1.List的情况

*/

// Customer lists = (Customer)context.getBean("customerBean");

// System.out.println(lists.getLists().toString());

/*

* 2.Set的情况

*/

// Customer sets = (Customer) context.getBean("customerBean");

// System.out.println(sets.getSets().toString());

/*

* 3.Map的情况

*/

// Customer maps = (Customer) context.getBean("customerBean");

// System.out.println(maps.getMaps().toString());

/*

* 4.Property

*/

Customer pros = (Customer) context.getBean("customerBean");

System.out.println(pros.getPros().toString());

}

}

运行结果:

case1-List的情况:

Image

case2-Set的情况:

Image

case3-Map的情况:

Image

case4-Prop的情况:

Image

本文内容总结:Spring+Maven学习实验- Spring 中将值注入集合类型(三)

原文链接:https://www.cnblogs.com/zoeyqq/p/6548559.html

以上是 Spring+Maven学习实验- Spring 中将值注入集合类型(三) 的全部内容, 来源链接: utcz.com/z/296021.html

回到顶部