关于spring中util:/的配置

解决redis设置缓存时间找到的帖子,我这个初学者需要学习的还是很多的。

原文地址:http://www.doc100.net/bugs/t/216322/index.html

探索<util/>命名空间      事情的发展总是一段曲折前进的过程。当Spring刚出现时,开发者可以使用<list/>、<map/>、<set/>等元素定义集合,然而这些集合不能够在不同的受管Bean间进行复用。尽管开发者可以采用抽象Bean机制实现复用,但实在不怎么优雅。与此同时,开发者借助ListFactoryBean、MapFactoryBean和SetFactoryBean等对象能够定义出可供复用的集合。然而,这也不是很友好的做法。再后来,<util/>命名空间被Spring 2.x引入,这才使得集合的定义变得简单。
首先在spring的配置文件中添加

<beans  xmlns="http://www.springframework.org/schema/beans"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:p="http://www.springframework.org/schema/p"  xmlns:util="http://www.springframework.org/schema/util"xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans-2.0.xsd  http://www.springframework.org/schema/util  <a href="http://www.springframework.org/schema/util/spring-util-2.0.xsd">http://www.springframework.org/schema/util/spring-util-2.0.xsd">

 
1. <util:constant/>元素 比如某类存在如下字段定义  

public static final String hwStatic = "hello static constant"; 

如果希望以上属性取值作为受管Bean,可以如下配置:  

<util:constant id="hwConstant" static-field="test.HelloWorld.hwStatic"/>  

这样就将java代码中的常量hwStatic(在test包下的HelloWorld类中)配置给spring进行管理,id为另起的名字; 又eg:

<util:constant id="maxValue" static-field="java.lang.Integer.MAX_VALUE"/>  

  2. <util:property-path/>元素 

<bean id="property-path" path="helloWorld.hello"/>  
<bean id="helloWorld" class="test.HelloWorld">  <property name="hello" value="hi"/>  
</bean> 

这里path="helloworld.hello"就是指bean为"helloworld"的属性hello。
3. <util:properties/>元素     "classpath:"表明,将从类路径上查找并装载xxx属性文件.  

<util:properties id="xxx" location="classpath:xxxxx.properties">  

4. <util:list/>元素 

<util:list id="listUtil" list-class="java.util.ArrayList">  <value>first</valuse>  <value>two</valuse>  <value>three</valuse>  <value>ten</valuse>  
</util:list> 

它的作用就是在spring启动初始化bean时,给listUtil这个list赋值为这四个值。 下面的同理
5. <util:map/>元素

<bean id="abstractCollectionBean" abstract="true">  <property name="map">  <map>  <entry key="mapKey1" value="mapValue1">  <entry key="mapKey2" value="mapValue2">  </map>  </property>  
</bean>

     继承了abstractCollectionBean的子bean  

<bean id="CollectionBean"  class="test.CollectionBean" parent="abstractCollectionBean">  <property name="map">  <map merge="true" key-type="java.lang.String" value-type="java.lang.String">  <entry key="mapKey1" value="mapValue1Override"/>  <entry>  <key><value>mapKey2</value></key>  <value>mapValue2</value>  </entry>  <entry key="testBean" value-ref="testBean">  </map>  </property>  
</bean>  
<bean id="testBean" class="test.TestBean" /> 

       为了简化MapFactoryBean对象的使用,可使用如下代码 :

<util:map id="mapUtil" map-class="java.util.HashMap">  <entry key="1" value="first">  <entry key="2" value="two">  <entry key="3" value="three">  
</util:map>  

   6. <util:set/>元素    同样的,为了简化SetFactoryBean对象,可使用如下代码 :

<util:set id="setUtil" set-class="java.util.HashSet">  <value>first</value>  <value>two</value>  <value>three</value>  
</util:set>  

7. 使用<p/>命名空间     在xml头加入 xmlns:p=http://www.springframework.org/schema/p;这里的p就是property的意思。        例如如下代码:  

<bean id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  <property name="locations" ref="locations"/>  <property name="order" value="1"/>  
</bean>  <util:list id="locations">  <value>userinfo.properties</value>  
</util:list> 

    在导入了</p>命名空间后,等价于  

<bean id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"  p:locations-ref="locations" p:order="1" />    <util:list id="locations">     <value>userinfo.properties</value>     
</util:list>

            实例:http://blog.csdn.net/daryl715/archive/2007/09/26/1802292.aspx

转载于:https://www.cnblogs.com/zypu/p/6593827.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/401360.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

静态类

静态类必须直接从System.Object派生&#xff0c;从其他任何基类派生没有任何意义。无法创建静态类的实例静态类不能实现任何接口&#xff0c;这是因为只有使用类的一个实例时&#xff0c;才可以调用类的接口方法静态类只能定义静态成员&#xff08;字段、方法、属性和事件&…

ASP.NET 数据库缓存依赖

By Peter A. Bromberg, Ph.D. 在ASP.NET中&#xff0c;Cache类最酷的特点是它能根据各种依赖来良好的控制自己的行为。以文件为基础的依赖是最有用的&#xff0c;文件依赖项是通过使用 Cache.Insert 并提供引用文件的 CacheDependency 对象添加的 Cache.Insert("MyData&qu…

React Router路由详解

React Router路由详解一、基础1、安装使用2、React Router 中通用的组件路由组件 BrowserRouter 和 HashRouter路径匹配组件: Route 和 Switch导航组件: Link 和 NavLinkRedirect 重定向withRouter编程式导航 - history 对象路由过渡动画打包部署的路由配置3、路由配置实例一、…

TLS 1.2详解

TSL由多个协议组成的两层协议集合&#xff0c;工作与应用层和传输层之间。 TLS协议包含两层协议&#xff1a;记录层协议&#xff08;TLS Record Protocol协议&#xff09;和 握手协议&#xff08;TLS Handshake Protocol协议&#xff09;&#xff0c;底层采用可靠传输协议&…

个人作业2——英语学习APP案例分析

第一部分 调研&#xff0c; 评测 1.下载并使用&#xff0c;描述最简单直观的个人第一次上手体验&#xff1a; 没有各种广告&#xff0c;界面简洁&#xff0c;软件安装包略小于其他翻译软件。就内存的占用而言优于同款热门软件有道词典。 2.必应词典&#xff08;Android客户端&a…

IOS开发UI篇之──自定义加载等待框(MBProgressHUD)

这里介绍一下网友开源的MBProgressHUD类&#xff0c;实现等待框&#xff0c; 一、网上下载 MBProgessHUD 类文件&#xff0c;直接导入到工程即可 二、示例分析 在我的工程中示例如下&#xff1a; 1&#xff09;在ShowImageViewController.h头文件代码如下&#xff1a; #import…

WindowProc和DefWindowProc的区别

1. WindowProc是你给自己的窗口定义的窗口处理函数 DefWindowProc是windows平台提供的默认窗口处理函数 如果某些消息你不需要做特别的处理&#xff0c;调用DefWindowProc进行处理就可以了&#xff0c;不需要你自己再去些那些windows的"标准动作"2. 根据1&#xff0c…

唯一约束(UNIQUE_KEY)

唯一约束可以保证记录的唯一性 唯一约束的字段可以为空值&#xff08;NULL&#xff09; 每张数据表可以存在多个唯一约束&#xff08;主键只有一个&#xff09; mysql> CREATE TABLE tb7( -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, -> username VARCHAR(2…

HDOJ---2236 无题II[二分枚举+匈牙利]

无题II Time Limit: 2000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 571 Accepted Submission(s): 296 Problem Description这是一个简单的游戏&#xff0c;在一个n*n的矩阵中&#xff0c;找n个数使得这n个数都在不同的行和…

Oracle 11gR2 RAC恢复OCR和VOTE DISK

Oracle 11gR2 RAC恢复OCR和VOTE DISK原文链接&#xff1a;http://www.askmaclean.com/archives/11-2-lost-ocr-votedisk-group-recovery.html之前有同学在我的Oracle Allstarts群里讨论关于丢失包含ocr和votedisk的ASM diskgroup导致11gR2 RAC cluster无法正常启动的问题&#…

vue3开发实践笔记

一、setup 生命周期 1、执行时机&#xff1a;会在beforeCreate之前执行&#xff0c;内部无法访问this 2、setup 包含的生命周期 onBeforeMount——挂载开始前调用 onMount——挂载后调用 onBeforeUpdate——当响应数据改变&#xff0c;且重新渲染前调用 onUpdated——重新渲…

GetLastError()函数返回值及含义

GetLastError返回的值通过在api函数中调用SetLastError或SetLastErrorEx设置。函数并无必要设置上一次错误信息&#xff0c;所以即使一次GetLastError调用返回的是零值&#xff0c;也不能担保函数已成功执行。只有在函数调用返回一个错误结果时&#xff0c;这个函数指出的错误结…

LINQ系列:Linq to Object排序操作符

LINQ排序操作符包括&#xff1a;OrderBy、OrderByDescending、ThenBy、ThenByDescending及Reverse。 1. OrderBy 1>. 原型定义 public static IOrderedQueryable<TSource> OrderBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func&l…

第5章 为手机而设计

5&#xff0e;为手机而设计 至此,你已经了解了手机&#xff0c;通过一个简单的应用程序的演练了工作方式并且学习XAML的基础知识。现在你应该开始考虑你要编写的应用程序的性质。虽然很容易想到的是手机只是Silverlight存在于另一个屏幕上而已&#xff0c;但是事实没有这么简单…

vue3.x全局toast、message、loading组件

vue3.x全局toast、message、loading组件Toast组件loadingToast组件 在 src/components下创建toast文件夹&#xff0c;并依此创建index.vue和index.js 1、index.vue 一般toast会有如下功能&#xff1a;背景色、字体颜色、文本、停留时间 <template> <div class"…

知天命

吾乃浑浑噩噩、后知后觉之人。 今欲窥天命之道。天命&#xff0c;何也&#xff1f; 天之命乎&#xff0c;或人之道乎&#xff1f; 人生于此世。 盲从于世上&#xff0c;依其欲而行&#xff0c;乃天之命也。 人可存之世上仅百载&#xff0c;终白土亦。 随意欲而为&#xff0c;应…

教程:在 VM Depot 中查找 Azure 可用的虚拟机镜像

&#xfeff;&#xfeff;发布于 2014-07-08 作者 陈 忠岳 对于 Azure 的社区管理虚拟机资源库——VM Depot——的用户来说&#xff0c;网站的搜索功能已得到极大的改善。这一搜索能力的增强&#xff0c;可以帮助用户更容易地找到 Azure 可用的开源 Linux 虚拟机。 搜索发现 …

HDU 1203 I NEED A OFFER!(01背包)

I NEED A OFFER! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 9932 Accepted Submission(s): 3687 Problem DescriptionSpeakless很早就想出国&#xff0c;现在他已经考完了所有需要的考试&#xff0c;准备了…

H5实现微信摇一摇功能

//摇一摇<script type"text/javascript"> var num 1; var SHAKE_THRESHOLD 2000; var last_update 0; var x y z last_x last_y last_z 0; function init() { if (window.DeviceMotionEvent) { window.addEventListener(devicemotion, deviceMotionHan…

PHP起点 - 运算符

一.算术运算符 名称    操作符    举例 加法          $a $b 减法     -      $a - $b 乘法     *     $a * $b 除法运算   /      $a / $b 取余运算   %     $a % $b 递增运算        $a, $a 递减运算  …