Spring中使用Map、Set、List、数组、属性集合的注入方法配置文件
(1)下边的一个Java类包含了所有Map、Set、List、数组、属性集合等这些容器,主要用于演示spring的注入配置;
- package com.lc.collection;
- import java.util.List;
- import java.util.Map;
- import java.util.Properties;
- import java.util.Set;
- public class Department {
- private String name;
- private String [] empName;//数组
- private List<Employee> empList;//list集合
- private Set<Employee> empsets;//set集合
- private Map<String,Employee> empMaps;//map集合
- private Properties pp;//Properties的使用
- public Set<Employee> getEmpsets() {
- return empsets;
- }
- public void setEmpsets(Set<Employee> empsets) {
- this.empsets = empsets;
- }
- public String[] getEmpName() {
- return empName;
- }
- public void setEmpName(String[] empName) {
- this.empName = empName;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public List<Employee> getEmpList() {
- return empList;
- }
- public void setEmpList(List<Employee> empList) {
- this.empList = empList;
- }
- public Map<String, Employee> getEmpMaps() {
- return empMaps;
- }
- public void setEmpMaps(Map<String, Employee> empMaps) {
- this.empMaps = empMaps;
- }
- public Properties getPp() {
- return pp;
- }
- public void setPp(Properties pp) {
- this.pp = pp;
- }
- }
(2)Spring配置文件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"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
- <bean id="department" class="com.hsp.collection.Department">
- <property name="name" value="财务部"/>
- <!-- 给数组注入值 -->
- <property name="empName">
- <list>
- <value>小明</value>
- <value>小明小明</value>
- <value>小明小明小明小明</value>
- </list>
- </property>
- <!-- 给list注入值 list 中可以有相当的对象 -->
- <property name="empList">
- <list>
- <ref bean="emp2" />
- <ref bean="emp1"/>
- <ref bean="emp1"/>
- <ref bean="emp1"/>
- <ref bean="emp1"/>
- <ref bean="emp1"/>
- <ref bean="emp1"/>
- </list>
- </property>
- <!-- 给set注入值 set不能有相同的对象 -->
- <property name="empsets">
- <set>
- <ref bean="emp1" />
- <ref bean="emp2"/>
- <ref bean="emp2"/>
- <ref bean="emp2"/>
- <ref bean="emp2"/>
- </set>
- </property>
- <!-- 给map注入值 map只有key不一样,就可以装配value -->
- <property name="empMaps">
- <map>
- <entry key="11" value-ref="emp1" />
- <entry key="22" value-ref="emp2"/>
- <entry key="22" value-ref="emp1"/>
- </map>
- </property>
- <!-- 给属性集合配置 -->
- <property name="pp">
- <props>
- <prop key="pp1">abcd</prop>
- <prop key="pp2">hello</prop>
- </props>
- </property>
- </bean>
- <bean id="emp1" class="com.hsp.collection.Employee">
- <property name="name" value="北京"/>
- <property name="id" value="1"/>
- </bean>
- <bean id="emp2" class="com.hsp.collection.Employee">
- <property name="name" value="天津"/>
- <property name="id" value="2"/>
- </bean>
- </beans>
(3)如何使用
- package com.lc.collection;
- import java.util.Enumeration;
- import java.util.Iterator;
- import java.util.Map;
- import java.util.Properties;
- import java.util.Map.Entry;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- public class App1 {
- public static void main(String[] args) {
- ApplicationContext ac=new ClassPathXmlApplicationContext("com/lc/collection/beans.xml");
- Department department=(Department) ac.getBean("department");
- System.out.println(department.getName());
- for(String emName:department.getEmpName()){
- System.out.println(emName);
- }
- /*
- * 通过list集合取出数据
- */
- System.out.println("**********通过list集合取出数据*****");
- for(Employee e : department.getEmpList()){
- System.out.println("name="+e.getName()+" "+e.getId());
- }
- /*
- * 通过set集合取出数据
- */
- System.out.println("**********通过set集合取出数据*****");
- for(Employee e : department.getEmpsets()){
- System.out.println("name="+e.getName());
- }
- /*
- * 通过map集合取出数据 迭代器
- */
- System.out.println("*******通过map集合取出数据 迭代器****");
- //1.迭代器
- Map<String,Employee> empmaps=department.getEmpMaps();
- Iterator it=empmaps.keySet().iterator();
- while(it.hasNext()){
- String key=(String) it.next();
- Employee emp=empmaps.get(key);
- System.out.println("key="+key+" "+emp.getName());
- }
- System.out.println("*******通过map集合取出数据 简洁方法****");
- //2.简洁方法
- for(Entry<String,Employee> entry1:department.getEmpMaps().entrySet()){
- System.out.println(entry1.getKey()+" "+entry1.getValue().getName());
- }
- System.out.println("*****通过Propertis取出数据*****");
- Properties pp=department.getPp();
- for(Entry<Object,Object> entry:pp.entrySet()){
- System.out.println(entry.getKey().toString()+" "+entry.getValue().toString());
- }
- System.out.println("*****通过Enumeration取出*****");
- Enumeration en= pp.keys();
- while(en.hasMoreElements()){
- String key=(String) en.nextElement();
- System.out.println(key+" "+pp.getProperty(key));
- }
- }
- }
(4)以后那些不知道的粘贴拷贝即可
注:转载请注明出处!
Spring中使用Map、Set、List、数组、属性集合的注入方法配置文件的更多相关文章
- spring中整合memcached,以及创建memcache的put和get方法
spring中整合memcached,以及创建memcache的put和get方法: 1:在项目中导入memcache相关的jar包 2:memcache在spring.xml的配置: 代码: < ...
- 大数据学习day15----第三阶段----scala03--------1.函数(“_”的使用, 函数和方法的区别)2. 数组和集合常用的方法(迭代器,并行集合) 3. 深度理解函数 4 练习(用java实现类似Scala函数式编程的功能(不能使用Lambda表达式))
1. 函数 函数就是一个非常灵活的运算逻辑,可以灵活的将函数传入方法中,前提是方法中接收的是类型一致的函数类型 函数式编程的好处:想要做什么就调用相应的方法(fliter.map.groupBy.so ...
- Spring中,使用Java配置的方式进行依赖注入
之前用spring的时候,只知道使用xml的方式,和使用注解的方式,却一直不知道在spring中,还可以使用Java类的方式进行配置.使用Java类的方式,就可以取代xml和注解.使用Java配置是S ...
- 【Spring】28、Spring中基于Java的配置@Configuration和@Bean用法.代替xml配置文件
Spring中为了减少xml中配置,可以生命一个配置类(例如SpringConfig)来对bean进行配置. 一.首先,需要xml中进行少量的配置来启动Java配置: <?xml version ...
- Spring中初始化bean和销毁bean的时候执行某个方法的详解
关于在spring 容器初始化 bean 和销毁前所做的操作定义方式有三种: 第一种:通过注解@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作 ...
- 通过一个例子,总结下检测数组属性的N种方法
判断arr数组里是否含有a,有a返回1;没有返回2var arr = [{a:1,b:2,c:3},{q:1,w:2,e:3},{s:4,g:5,i:9},{b:2,v:3,u:4}]; 检测属性的3 ...
- Spring IOC(通过实例介绍,属性与构造方法注入)
概括说明:下面通过实例介绍下属性方法注入.构造方法注入 1.源码结构图 2.代码介绍 (1).Dao接口 :UserDAO (2).Dao接口实现:UserDAOImpl (3).实体类:User ( ...
- Spring中的@Transactional(rollbackFor = Exception.class)属性详解
序言 今天我在写代码的时候,看到了.一个注解@Transactional(rollbackFor = Exception.class),今天就和大家分享一下,这个注解的用法: 异常 如下图所示,我们都 ...
- coding++:Spring中的@Transactional(rollbackFor = Exception.class)属性详解
异常: 如下图所示,我们都知道 Exception 分为 运行时异常 RuntimeException 和 非运行时异常. error 是一定会回滚的. 如果不对运行时异常进行处理,那么出现运行时异常 ...
随机推荐
- 用 Docker Machine 创建 Azure 虚拟主机
搭建环境向来是一个重复造轮子的过程,Docker Machine 则把用户搭建 Docker 环境的各种方案汇集在了一起.笔者在<Docker Machine 简介>一文中演示了使用 Do ...
- Python读取和处理文件后缀为".sqlite"的数据文件
最近在弄一个项目分析的时候,看到有一个后缀为”.sqlite”的数据文件,由于以前没怎么接触过,就想着怎么用python来打开并进行数据分析与处理,于是稍微研究了一下. SQLite是一款非常流行的关 ...
- 总结一下最近用过的phpcms语法
到目前为止用到过的phpcms语法: 1.取栏目名称: {category[$catid][catname]} 2.取栏目地址: {category[14][url]} 3.取一级栏目: {pc:co ...
- Api接口通用安全策略及实现-OSS.Core
这篇文章一直说写,迟迟没有动手,这两天看到一些应用接口数据被别人爬虫.短信接口被人高频率请求攻击等案列,感觉简单概述分享一下接口安全验证还是有必要的.毕竟当下基本都以客户端应用为主,如果前期疏忽,发布 ...
- Notepad++的正则表达式替换和替换
[1]如果从行首匹配,可以用"^"来实现,[2]如果从行尾匹配,可以用"$"来实现, 在查找内容里面输入"345$" 这里"$&q ...
- 6.解决AXIOS的跨域问题
在服务端加上: response.addHeader("Access-Control-Allow-Origin", "*"); response.addHead ...
- 详解ASP.NET MVC 控制器
1 概述 在阅读本篇博文时,建议结合上篇博文:详解ASP.NET MVC 路由 一起阅读,效果可能会更好些. Controller(控制器)在ASP.NET MVC中负责控制所有客户端与服务端的 ...
- Vijos 1006 晴天小猪历险记之Hill 单源单汇最短路
背景 在很久很久以前,有一个动物村庄,那里是猪的乐园(^_^),村民们勤劳.勇敢.善良.团结-- 不过有一天,最小的小小猪生病了,而这种病是极其罕见的,因此大家都没有储存这种药物.所以晴天小猪自告奋勇 ...
- Japanese Learning - 五十音图
平假名: 片假名: あ い う え お ア イ ウ エ オ か き く け こ カ キ ク ケ コ さ し す せ そ サ シ ス セ ソ た ち つ て と タ チ ツ テ ト な に ...
- 跳跳棋(9018_1563)(BZOJ_2144)
题目: Hzwer的跳跳棋是在一条数轴上进行的.棋子只能摆在整点上.每个点不能摆超过一个棋子. 某一天,黄金大神和cjy用跳跳棋来做一个简单的游戏:棋盘上有3颗棋子,分别在a,b,c这三个位置.他们要 ...