`
8366
  • 浏览: 807076 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

第9讲 --Spring如何装配各种集合类型的属性

阅读更多

 

 集合类型的装配

 

 private Set<String> sets = new HashSet<String>();

 


 private List<String> lists = new ArrayList<String>();


 private Properties properties = new Properties();


 private Map<String, String> maps = new HashMap<String, String>();


        ....//这里省略属性的getter和setter方法

 

 

步骤:

 

(1).修改PersionServiceBean.java ,给它加上一些集合类属性

 

package cn.com.xinli.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 org.apache.log4j.Logger;

import cn.com.xinli.dao.PersionDao;
import cn.com.xinli.service.PersionSevice;
										   
public class PersionServiceBean implements PersionSevice 
{
	Logger log=Logger.getLogger(PersionServiceBean.class);
	private PersionDao persionDao;
	private String name;
	private int age;
	
	private Set<String> sets = new HashSet<String>();
	private List<String> lists = new ArrayList<String>();
	private Properties properties = new Properties();
	private Map<String, String> maps = new HashMap<String, String>();
	
	
	public Set<String> getSets()
	{
		return sets;
	}
	public void setSets(Set<String> sets)
	{
		this.sets = sets;
	}
	public List<String> getLists()
	{
		return lists;
	}
	public void setLists(List<String> lists)
	{
		this.lists = lists;
	}
	public Properties getProperties()
	{
		return properties;
	}
	public void setProperties(Properties properties)
	{
		this.properties = properties;
	}
	public Map<String, String> getMaps()
	{
		return maps;
	}
	public void setMaps(Map<String, String> maps)
	{
		this.maps = maps;
	}
	public int getAge()
	{
		return age;
	}
	public void setAge(int age)
	{
		this.age = age;
	}
	public String getName()
	{
		return name;
	}
	public void setName(String name)
	{
		this.name = name;
	}
	public PersionDao getPersionDao()
	{
		return persionDao;
	}
	public void setPersionDao(PersionDao persionDao)
	{
		this.persionDao = persionDao;
	}
	public void init()
	{
		log.info("初始化资源");
	}
	public PersionServiceBean() 
	{
		log.info("我被实例化了");
	}

	public void save()
	{
		log.info("name:"+name);
		log.info("age:"+age);
		 this.persionDao.add();
	}
	public void destory()
	{
		log.info("释放资源");
	}
	
}	

 

 

(2) 配置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="persionDao" class="cn.com.xinli.dao.impl.PersionDaoBean"></bean>                                                               
	<bean id="persionServiceBean" class="cn.com.xinli.service.impl.PersionServiceBean" init-method="init" destroy-method="destory">
		<property name="persionDao" ref="persionDao"/>
		<property name="name" value="huxl"/>
		<property name="age" value="26"/>
			<property name="sets">
          		<set>
          			<value>第一个</value>
          			<value>第二个</value>
          			<value>第三个</value>
          		</set>
          	</property>
          	<property name="lists">
          		<list>
          			<value>第一个list元素</value>
          			<value>第二个list元素</value>
          			<value>第三个list元素</value>
          		</list>
          	</property>
          	<property name="properties">
          		<props>
          			<prop key="key1">value1</prop>
          			<prop key="key2">value2</prop>
          			<prop key="key3">value3</prop>
          		</props>
          	</property>
          	<property name="maps">
          		<map>
          			<entry key="key-1" value="value-1"/>
          			<entry key="key-2" value="value-2"/>
          			<entry key="key-3" value="value-3"/>
          		</map>
          	</property>
	</bean>
	
	
	<!-- 
    <bean id="persionServiceBean2" class="cn.com.xinli.service.impl.PersionServiceBeanFactory" factory-method="createPersionServiceBean"/>
    
    <bean id="PersionServiceBeanFactory" class="cn.com.xinli.service.impl.PersionServiceBeanFactory"></bean>
    <bean id="persionServiceBean3" factory-bean="PersionServiceBeanFactory" factory-method="createPersionServiceBean2"></bean>
     -->
</beans>

 

 

(3) 测试:

ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
		PersionSevice ps=(PersionSevice)ctx.getBean("persionServiceBean");
		ps.save();
		System.out.println("========set===========");
		for(String value : ps.getSets()){
			System.out.println(value);
		}
		System.out.println("========list===========");
		for(String value : ps.getLists()){
			System.out.println(value);
		}
		System.out.println("========properties===========");
		for(Object key : ps.getProperties().keySet()){
			System.out.println(key+"="+ ps.getProperties().getProperty((String)key));
		}
		System.out.println("========map===========");
		for(String key : ps.getMaps().keySet()){
			System.out.println(key+"="+ ps.getMaps().get(key));
		}

 

 

 (5) 结果

 

2009-05-30 17:52:17,906  INFO (PersionServiceBean.java:91) - 我被实例化了
2009-05-30 17:52:18,046  INFO (PersionServiceBean.java:87) - 初始化资源
2009-05-30 17:52:18,062  INFO (PersionServiceBean.java:96) - name:huxl
2009-05-30 17:52:18,062  INFO (PersionServiceBean.java:97) - age:26
2009-05-30 17:52:18,062  INFO (PersionDaoBean.java:15) - 执行了PersionDaoBean中的add()方法
========set===========
第一个
第二个
第三个
========list===========
第一个list元素
第二个list元素
第三个list元素
========properties===========
key3=value3
key2=value2
key1=value1
========map===========
key-1=value-1
key-2=value-2
key-3=value-3

分享到:
评论

相关推荐

    Spring-Reference_zh_CN(Spring中文参考手册)

    7.3.2. Spring里的通知类型 7.3.2.1. 拦截around通知 7.3.2.2. 前置通知 7.3.2.3. 异常通知 7.3.2.4. 后置通知 7.3.2.5. 引入通知 7.4. Spring里的advisor(Advisor) API 7.5. 使用ProxyFactoryBean创建AOP代理 ...

    spring的详细介绍

    - 集合类型(List、Set、Map、Properties):通过`&lt;list/&gt;`、`&lt;set/&gt;`、`&lt;map/&gt;`、`&lt;props/&gt;`元素注入。 7. 创建Bean实例的方法: - 通过构造器(有参或无参)。 - 通过静态工厂方法。 - 通过实例工厂方法。 8...

    Spring的经典面试题

    - **自动装配**:Spring框架能够根据Bean类型自动找到匹配的Bean,并进行依赖注入。 #### 14. 区分不同模块中的自动生成Bean - **区分方法**:通过`@Primary`注解或者`@Qualifier`注解来区分同类型的多个Bean,...

    Spring in Action(第二版 中文高清版).part2

    第9章 在Spring中建立契约优先Web服务 9.1 介绍Spring-WS 9.2 定义契约(首先!) 9.3 使用服务端点处理消息 9.3.1 建立基于JDOM消息的端点 9.3.2 序列化消息载荷 9.4 合并在一起 9.4.1 Spring-WS:全景视图 ...

    spring2.5 学习笔记

    - **集合注入**:注入 List、Set、Map 等集合类型的属性。 - **自动装配**:通过 `byName` 或 `byType` 自动匹配并注入 Bean。 - **生命周期管理**:通过 `init-method` 和 `destroy-method` 来定义 Bean 的初始...

    Spring6_pdf版讲义.pdf

    - **根据类型自动装配**:使用`autowire="byType"`属性。 ### 五、Bean的作用域 - **singleton**:单例模式,每个容器只有一个bean实例。 - **prototype**:原型模式,每次请求都会创建一个新的bean实例。 - **其它...

    Spring攻略(第二版 中文高清版).part1

    第9章 Spring REST 352 9.1 用Spring发布一个REST服务 352 9.1.1 问题 352 9.1.2 解决方案 353 9.1.3 工作原理 353 9.2 用Spring访问REST服务 358 9.2.1 问题 358 9.2.2 解决方案 358 9.2.3 工作...

    spring.net中文手册在线版

    第九章. Spring.NET杂记 9.1.简介 9.2.PathMatcher 9.2.1.通用规则 9.2.2.匹配文件名 9.2.3.匹配子目录 9.2.4.大小写需要考虑,斜线可以任意 第十章. 表达式求值 10.1.简介 10.2.表达式求值 10.3.语言参考 10.3.1....

    Spring in Action(第2版)中文版

    第9章在spring中建立契约优先web服务 9.1介绍spring-ws 9.2定义契约(首先!) 9.3使用服务端点处理消息 9.3.1建立基于jdom消息的端点 9.3.2序列化消息载荷 9.4合并在一起 9.4.1spring-ws:全景视图 9.4.2将...

    Spring.3.x企业应用开发实战(完整版).part2

    4.4.6 集合类型属性 4.4.7 简化配置方式 4.4.8 自动装配 4.5 方法注入 4.5.1 lookup方法注入 4.5.2 方法替换 4.6 之间的关系 4.6.1 继承 4.6.2 依赖 4.6.3 引用 4.7 整合多个配置文件 4.8 Bean作用域 4.8.1 ...

    Spring in Action(第二版 中文高清版).part1

    第9章 在Spring中建立契约优先Web服务 9.1 介绍Spring-WS 9.2 定义契约(首先!) 9.3 使用服务端点处理消息 9.3.1 建立基于JDOM消息的端点 9.3.2 序列化消息载荷 9.4 合并在一起 9.4.1 Spring-WS:全景视图 ...

    Spring攻略(第二版 中文高清版).part2

    第9章 Spring REST 352 9.1 用Spring发布一个REST服务 352 9.1.1 问题 352 9.1.2 解决方案 353 9.1.3 工作原理 353 9.2 用Spring访问REST服务 358 9.2.1 问题 358 9.2.2 解决方案 358 9.2.3 工作...

    java框架-Spring2复习题.pdf

    9. **控制反转(IOC)**:控制反转是指对象不再主动寻找依赖类,而是由容器负责管理和装配对象的依赖关系。A项正确,B项错误,对象被动地接受依赖类;C项错误,对象不再主动找依赖类;D项错误,IOC并不强制使用接口,...

    spring famework xml配置使用示例

    对于List、Set、Map等集合类型的属性,可以通过`&lt;list&gt;`, `&lt;set&gt;`, `&lt;map&gt;`等标签注入: ```xml &lt;value&gt;item1 &lt;value&gt;item2 ``` 6. **作用域** Bean可以有多种作用域,如单例(singleton)、原型...

    Spring3.x企业应用开发实战(完整版) part1

    4.4.6 集合类型属性 4.4.7 简化配置方式 4.4.8 自动装配 4.5 方法注入 4.5.1 lookup方法注入 4.5.2 方法替换 4.6 之间的关系 4.6.1 继承 4.6.2 依赖 4.6.3 引用 4.7 整合多个配置文件 4.8 Bean作用域 4.8.1 ...

Global site tag (gtag.js) - Google Analytics