PropertySet教程-2.Memory、map、XML方式

本文档详细介绍了开源项目PropertySet的使用,包括内存、Map和XML三种方式的操作。通过示例代码展示了如何进行设置和获取key-value数据。PropertySet在内存方式中,数据仅存储于内存,程序退出后丢失;Map方式则需要提供HashMap作为初始数据;XML方式则需要XML属性文件,支持多种数据类型存储。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  inkfish原创,请勿商业性质转载,转载请注明来源(http://blog.youkuaiyun.com/inkfish )。

  PropertySet(来源:http://blog.youkuaiyun.com/inkfish) 是由opensymphony组织开发的的一个开源项目,但是那个项目文档少,长时间没有更新,官方文档错误奇多,所以现在在项目中使用并不广泛。但这并不妨碍PropertySet成为一个优秀的key-value持久化模块,当前,PropertySet可以说已经够用。这里我整理书写了PropertySet的文档。(来源:http://blog.youkuaiyun.com/inkfish)


  PropertySet最容易使用和上手的是memory方式,最常用的是xml、JDBC,另外Hibernate、EJB是较常用的方式。这里选择介绍memory、map、XML方式。(来源:http://blog.youkuaiyun.com/inkfish)

 

1.Demo

PropertySetDemo.java

 

config.xml (XML形式下使用):

 

需要jar包:(来源:http://blog.youkuaiyun.com/inkfish)

   1.propertyset-1.3.jar

   2.propertyset中自带的第三方jar包:oscore-2.2.1.jarcommons-logging-1.1.1.jar

   3.xml形式时需要使用的解析的包:xalan.jar

   4.其他demo程序用到的工具包:commons-lang-2.4.jarcommons-io-1.4.jar

 

2.memory方式 (来源:http://blog.youkuaiyun.com/inkfish)

  memory顾名思义,把数据存到内存里,刚开始内存里没有东西,程序退出也不会保存,适合于做demo性质的小项目。初始化使用简单的“PropertySet ps = PropertySetManager.getInstance("memory", null); ”即可,然后就可以set和get,注意刚实例化里面什么数据都没有,get不出来东西。(来源:http://blog.youkuaiyun.com/inkfish)

 

3.map方式 (来源:http://blog.youkuaiyun.com/inkfish)

  map和memory类似,也是使用内存存取数据,区别是map开始需要初始化一个map作为初始参数传入,初始化代码:(来源:http://blog.youkuaiyun.com/inkfish)

  初始化过程的具体实现类是com.opensymphony.module.propertyset.map.MapPropertySet ,初始化过程:(来源:http://blog.youkuaiyun.com/inkfish)

  可以看出PropertySetManager.getInstance("map", map); 传入的map里可以嵌套一个key为"map",值为map类型的Map ,如果传入的map是一个空的Map ,则初始化出一个HashMap 的示例,但千万不能传入null。初始化完毕后,就可以随便使用。(来源:http://blog.youkuaiyun.com/inkfish)

 

4.XML方式 (来源:http://blog.youkuaiyun.com/inkfish)

  XML方式的初始化,一定是需要一个XML属性文件,属性文件的格式见上面的config.xml ,里面支持的类型有booleanintlongdoubleStringtextDatePropertiesxml 、Object。xml和Object现在还没研究透,实验也没完全成功,放一边不说。Date类型的数据格式是yyyy-MM-dd HH:mm:ss ,写死在PropertySet里的。String和text几乎一样,都按照String处理,但是如果调用了save() 方法,text前后可能会加一些回车或空格,因此不建议使用text,如果需要使用,则在getText() 后需要trim() 一下。(来源:http://blog.youkuaiyun.com/inkfish)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值