要使用<util>标签,必须在XML中加入util名称空间(namespace):

xmlns:util="http://http://www.springframework.org/schema/util"

xsi:schemaLocation="http://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util-2.0.xsd"

分别使用<util:list>、<util:map>、<util:set>、<util:properties>等标签。

用它来取代ListFactoryBean、MapFactoryBean、SetFactoryBean、PropertiesFactoryBean。

其中的<util:properties>标签可以通过location属性指定其properties属性文件的位置。

除了以上使用的标签外,还有<util:constant>可用来设置静态数据成员(staticfield),而免于设置org.springframework.beans.factory.config.FieldRetrievingFactoryBean,例如:

<bean id="circle" class="cn.itcast.spring._other.Circle">

<property name="pi">

<util:constant static-field="java.lang.Math.PI"/>

</property>

</bean>

  

 

还可以使用<util:property-path>标签为某个Bean的属性成员设置id属性,使之在容器管理中,免于设置org.springframework.beans.factory.config.PropertyPathFactoryBean,例如:

<!-- id值为PI的Bean,其值将会是circle.pi -->

<util:property-path  id="PI" path="circle.pi"/>

修改集合对象中示例的Bean定义文件

<bean id="some1" class="cn.itcast.spring._util.Some">

  <property name="val" value="some instance1" />

</bean>

<bean id="some2" class="cn.itcast.spring._util.Some">

  <property name="val" value="some instance2" />

</bean>

<bean id="some3" class="cn.itcast.spring._util.Some">

  <property name="val" value="some instance3" />

</bean>

<util:list id="strArray">

  <value>Hello</value>

  <value>Welcome</value>

</util:list>

<util:list id="objArray">

  <ref bean="some1" />

  <ref bean="some2" />

  <ref bean="some3" />

</util:list>

<util:list id="list" list-class="java.util.ArrayList">

  <ref bean="some1"/>

  <ref bean="some2" />

  <ref bean="some3" />

</util:list>

<util:map id="map" map-class="java.util.HashMap" >

  <entry key="key1" value-ref="some1"/>

  <entry key="key2" value-ref="some2"/>

  <entry key="key3" value-ref="some3"/>

</util:map>

写完util配置文件后,如何给某个类赋值呢?也可以直接用配置的方式:

<bean id="someBean" class="cn.itcast.spring._util.SomeBean">

  <property name="someStrArray" ref="strArray"/>

  <property name="someObjArray" ref="objArray"/>

  <property name="someList" ref="list"/>

  <property name="someMap" ref="map"/>

</bean>

或者在类中使用@Value注解

@Value("#{strArray}")
private List<String> somoeStrArray;
@Value("#{objArray}")
private List<Some> somoeObjArray;
@Value("#{list}")
private List<Some> somoeList;
@Value("#{map}")
private Map<String,Some> someMap;

Spring依赖注入 — util命名空间配置的更多相关文章

  1. Spring依赖注入的简化配置

    一, 很久很久以前, 当我们不用@Autowire注解时, 依赖注入要么通过setter方法, 要么通过构造方法; 需要在配置文件里配置一大堆property-ref.......... 二, 若使用 ...

  2. Spring依赖注入三种方式详解

    在讲解Spring依赖注入之前的准备工作: 下载包含Spring的工具jar包的压缩包 解压缩下载下来的Spring压缩包文件 解压缩之后我们会看到libs文件夹下有许多jar包,而我们只需要其中的c ...

  3. Spring依赖注入 --- 简单使用说明

    Spring依赖注入 --- 简单使用说明 本文将对spring依赖注入的使用做简单的说明,enjoy your time! 1.使用Spring提供的依赖注入 对spring依赖注入的实现方法感兴趣 ...

  4. Spring、Spring依赖注入与编码剖析Spring依赖注入的原理

    Spring依赖注入 新建PersonIDao 和PersonDao底实现Save方法: public interface PersonIDao { public void save(); } pub ...

  5. Spring学习笔记——Spring依赖注入原理分析

    我们知道Spring的依赖注入有四种方式,各自是get/set方法注入.构造器注入.静态工厂方法注入.实例工厂方法注入 以下我们先分析下这几种注入方式 1.get/set方法注入 public cla ...

  6. java后端开发三年!你还不了解Spring 依赖注入,凭什么给你涨薪

    前言 前两天和一个同学吃饭的时候同学跟我说了一件事,说他公司有个做了两年的人向他提出要涨薪资,他就顺口问了一个问题关于spring依赖注入的,那个要求涨薪的同学居然被问懵了...事后回家想了想这一块确 ...

  7. Spring依赖注入:注解注入总结

    更多11   spring   依赖注入   注解   java 注解注入顾名思义就是通过注解来实现注入,Spring和注入相关的常见注解有Autowired.Resource.Qualifier.S ...

  8. Spring 依赖注入,在Main方法中取得Spring控制的实例

    Spring依赖注入机制,在Main方法中通过读取配置文件,获取Spring注入的bean实例.这种应用在实训的时候,老师曾经说过这种方法,而且学Spring入门的时候都会先学会使用如何在普通的jav ...

  9. Spring依赖注入 --- 模拟实现

    Spring依赖注入 --- 模拟实现 面向接口编程,又称面向抽象编程, 数据库如果发生更改,对应的数据访问层也应该改变多写几个实现,需要用谁的时候在service里new谁就可以了面向抽象编程的好处 ...

随机推荐

  1. 地牢逃脱 (BFS)

    题意:给定一个 n 行 m 列的地牢,其中 '.' 表示可以通行的位置,'X' 表示不可通行的障碍,牛牛从 (x0 , y0 ) 位置出发,遍历这个地牢,和一般的游戏所不同的是,他每一步只能按照一些指 ...

  2. CodeForces - 727E Games on a CD 字符串Hash

    题意:有n个单词,每个单词长度为k,顺时针将它们写成一个圆圈串.现在知道g个长度为k的单词,是否可以从这g个单词中选择n个形成这个圆圈串?如果有多个答案,任意输出一个. 思路 可以发现,如果枚举第一个 ...

  3. SpringBoot实战 之 异常处理篇

    在互联网时代,我们所开发的应用大多是直面用户的,程序中的任何一点小疏忽都可能导致用户的流失,而程序出现异常往往又是不可避免的,那该如何减少程序异常对用户体验的影响呢?其实方法很简单,对异常进行捕获,然 ...

  4. C语言老司机学Python (三)

    条件语句: 注意1) condition后面的冒号 2) elif if condition_1: statement_block_1elif condition_2: statement_block ...

  5. python 下载新的模块

    首先, 进入到python的安装目录 在安装目录下有一个Scripts文件夹. 然后里面有一个pip.exe 文件, 这个文件就是执行安装包的. 执行: pip.exe install django ...

  6. trigger click 和 click 的区别??

    trigger click 和 user click 有什么区别吗? 好像没有的.直到发现了这样一段代码. <button class="btn1">Button< ...

  7. 影响JavaScript应用可扩展性因素

    引言:JavaScript 应用变得越来越庞大.这是因为使用JavaScript能做的事情远比我们大多数人所需求的要多得多.我们不能仅因为技术上可行,就去考虑软件系统的扩展问题.为一个不需要扩展的系统 ...

  8. 如何利用Plxmon工具进行在线烧录PCI卡的EEPROM

    PLXMON是PLX公司提供的用于在线烧录PCI卡的EEPROM的工具. 烧录EEPROM有两种方式,一是比较传统的方法,即采用烧录机进行烧录.采用这种方式时,在调试过程中EEPROM需采用插件式封装 ...

  9. mysql事务介绍

    什么是事务 一组sql语句操作单元组内所有sql完成一个业务如果整组成功,意味着组内的全部的sql成功如果其中任何一个失败,意味着整个操作失败 数据回到操作前的状态 事务的特点 1.多条sql语句组成 ...

  10. 【memcache】windos下 memcache更改默认的端口和最大使用内存

    1>用内网ip的方式提供web应用服务器调用,不允许直接通过外网调用,如将memcache服务器放在192.168.1.55的服务器上 2>修改端口,如改为11200 3>分配内存, ...