Spring的DI(Ioc) - 注入集合类型

时间:2020-12-09 17:01:35

1: 首先给service添加集合类型的属性,并提供getter, setter

package cn.gbx.serviceimpl;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

import cn.gbx.daoimpl.PersonDao;
import cn.gbx.service.PersonService;

public class PersonServiceImpl implements PersonService {
	private Set<String> sets = new HashSet<String>();
	private List<String> list = new ArrayList<String>();
	private Map<String, String> maps = new HashMap<String, String>();
	private Properties properties = new Properties();
	
	
	private PersonDao personDao;
	private String name;
	private Integer id;
	
	
	public void save() {
		System.out.println("id = " + id + "name = " + name);
		personDao.save();
		System.out.println("service :  " + " save 方法");
	}
	
	public PersonDao getPersonDao() {
		return personDao;
	}
	public void setPersonDao(PersonDao personDao) {
		this.personDao = personDao;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public Set<String> getSets() {
		return sets;
	}

	public void setSets(Set<String> sets) {
		this.sets = sets;
	}

	public List<String> getList() {
		return list;
	}

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

	public Map<String, String> getMaps() {
		return maps;
	}

	public void setMaps(Map<String, String> maps) {
		this.maps = maps;
	}

	public Properties getProperties() {
		return properties;
	}

	public void setProperties(Properties properties) {
		this.properties = properties;
	}
	
}

  

2: 配置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-2.5.xsd">
           
    <bean id="personDaoImpl" class="cn.gbx.dao.PersonDaoImpl"></bean>
 	<bean id="personServiceImpl" class="cn.gbx.serviceimpl.PersonServiceImpl" >
 		<property name="personDao" ref="personDaoImpl"></property>
 		<property name="name" value="ok-gbx"></property>
 		<property name="id" value="22"></property>
 		
 		<property name="list">
 			<list>
 				<value>valu1</value>
 				<value>valu2</value>
 				<value>valu3</value>
 			</list>
 		</property>
 		
 		<property name="sets">
	 		<set>
	 			<value>value-1</value>
	 			<value>value-2</value>
	 			<value>value-3</value>
	 		</set>
 		</property>
 		
 		<property name="maps">
 			<map>
 				<entry key="key1" value="value1"></entry>
 				<entry key="key2" value="value2"></entry>
 				<entry key="key3" value="value3"></entry>
 			</map>
 		</property>
 		
 		<property name="properties">
 			<props>
 				<prop key="key1">value1</prop>
 				<prop key="key2">value2</prop>
 				<prop key="key3">value3</prop>
 			</props>
 		</property>
 	</bean>
</beans>

  

3: 测试:

public class SpringTest {
	@Test
	public void spring1() {
		ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
		PersonService ps = (PersonService)ctx.getBean("personServiceImpl");
		ps.save();
		System.out.println("--------List-------------");
		for (String s : ps.getList()) {
			System.out.println(s);
		}
		System.out.println("--------sets-------------");
		for (String s : ps.getSets()) {
			System.out.println(s);
		}
		
		System.out.println("--------maps-------------");
		for (String key : ps.getMaps().keySet()) {
			System.out.println(key + " : " + ps.getMaps().get(key));
		}
		
		System.out.println("--------propertis-------------");
		for (Object key : ps.getProperties().keySet()) {
			System.out.println(key + " : " + ps.getMaps().get(key));
		}
		
	}
	
	@Test
	public void spring2() {
		MyClassPathXmlApplicationContext ctx = new MyClassPathXmlApplicationContext("beans.xml");
		PersonService ps = (PersonService)ctx.getBean("personServiceImpl");
		ps.save();
		System.out.println();
	}
}