目录结构如图所示
beans.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="personDao" class="cn.itcast.service.impl.PersonDaoBean"></bean>
<bean id="PersonService" class="cn.itcast.service.impl.PersonServiceBean2">
<property name="personDao" ref="personDao"></property>
<property name="sets">
<set>
<value>第一个set</value>
<value>第二个set</value>
<value>第三个set</value>
</set>
</property>
<property name="lists">
<list>
<value>list1</value>
<value>list2</value>
<value>list3</value>
<value>list14</value>
</list>
</property>
<property name="properties">
<props>
<prop key="key1">prop1</prop>
<prop key="key2">prop2</prop>
<prop key="key3">prop3</prop>
</props>
</property>
<property name="maps">
<map>
<entry key="key-1" value="value-1"></entry>
<entry key="key-2" value="value-2"></entry>
<entry key="key-3" value="value-3"></entry>
</map>
</property>
</bean>
</beans>
测试类代码
package junit.test;
import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import cn.itcast.service.PersonService;
public class SpringTess {
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
@Test
public void instanceSpring() {
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
PersonService ps = (PersonService) ctx.getBean("PersonService");
System.out.println("---------------sets-----------");
for (String value : ps.getSets()) {
System.out.println(value);
}
System.out.println("---------------lists-----------");
for (String value : ps.getLists()) {
System.out.println(value);
}
System.out.println("---------------properties-----------");
for (Object key : ps.getProperties().keySet()) {
System.out.println(ps.getProperties().getProperty((String) key));
}
System.out.println("---------------maps-----------");
for (String key : ps.getMaps().keySet()) {
System.out.println(ps.getMaps().get(key));
}
// ps.save();
}
}
接口PersonService.java
package cn.itcast.service;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
public interface PersonService {
public abstract PersonDao getPersonDao();
public abstract List<String> getLists();
public abstract void setLists(List<String> lists);
public abstract Map<String, String> getMaps();
public abstract void setMaps(Map<String, String> maps);
public abstract Properties getProperties();
public abstract void setProperties(Properties properties);
public abstract Set<String> getSets();
public abstract void setSets(Set<String> sets);
public abstract void setPersonDao(PersonDao personDao);
public abstract void save();
}
两个不同的实现类PersonServiceBean.java和PersonServiceBean2.java,bean.xml配置不同时,可以选择不同的实现类
package cn.itcast.service.impl;
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.itcast.service.PersonDao;
import cn.itcast.service.PersonService;
public class PersonServiceBean implements PersonService {
private PersonDao personDao;
private Set<String> sets = new HashSet<String>();
private List<String> lists = new ArrayList<String>();
private Map<String, String> maps = new HashMap<String, String>();
private Properties properties = new Properties();
/* (non-Javadoc)
* @see cn.itcast.service.impl.PersonService#getPersonDao()
*/
public PersonDao getPersonDao() {
return personDao;
}
/* (non-Javadoc)
* @see cn.itcast.service.impl.PersonService#getLists()
*/
public List<String> getLists() {
return lists;
}
/* (non-Javadoc)
* @see cn.itcast.service.impl.PersonService#setLists(java.util.List)
*/
public void setLists(List<String> lists) {
this.lists = lists;
}
/* (non-Javadoc)
* @see cn.itcast.service.impl.PersonService#getMaps()
*/
public Map<String, String> getMaps() {
return maps;
}
/* (non-Javadoc)
* @see cn.itcast.service.impl.PersonService#setMaps(java.util.Map)
*/
public void setMaps(Map<String, String> maps) {
this.maps = maps;
}
/* (non-Javadoc)
* @see cn.itcast.service.impl.PersonService#getProperties()
*/
public Properties getProperties() {
return properties;
}
/* (non-Javadoc)
* @see cn.itcast.service.impl.PersonService#setProperties(java.util.Properties)
*/
public void setProperties(Properties properties) {
this.properties = properties;
}
/* (non-Javadoc)
* @see cn.itcast.service.impl.PersonService#getSets()
*/
public Set<String> getSets() {
return sets;
}
/* (non-Javadoc)
* @see cn.itcast.service.impl.PersonService#setSets(java.util.Set)
*/
public void setSets(Set<String> sets) {
this.sets = sets;
}
/* (non-Javadoc)
* @see cn.itcast.service.impl.PersonService#setPersonDao(cn.itcast.service.PersonDao)
*/
public void setPersonDao(PersonDao personDao) {
this.personDao = personDao;
}
/* (non-Javadoc)
* @see cn.itcast.service.impl.PersonService#save()
*/
public void save() {
System.out.println("我是save!!!");
personDao.add();
}
}
package cn.itcast.service.impl;
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.itcast.service.PersonDao;
import cn.itcast.service.PersonService;
public class PersonServiceBean2 implements PersonService {
private Set<String> sets = new HashSet<String>();
private List<String> lists = new ArrayList<String>();
private Map<String, String> maps = new HashMap<String, String>();
private Properties properties = new Properties();
public Set<String> getSets() {
System.out.println("新方法");
return sets;
}
public void setSets(Set<String> sets) {
System.out.println("新方法");
this.sets = sets;
}
public List<String> getLists() {
System.out.println("新方法");
return lists;
}
public void setLists(List<String> lists) {
this.lists = lists;
}
public Map<String, String> getMaps() {
System.out.println("新方法");
return maps;
}
public void setMaps(Map<String, String> maps) {
System.out.println("新方法");
this.maps = maps;
}
public Properties getProperties() {
System.out.println("新方法");
return properties;
}
public void setProperties(Properties properties) {
System.out.println("新方法");
this.properties = properties;
}
public PersonDao getPersonDao() {
System.out.println("新方法");
// TODO Auto-generated method stub
return null;
}
public void save() {
// TODO Auto-generated method stub
}
public void setPersonDao(PersonDao personDao) {
// TODO Auto-generated method stub
}
}