inkfish原创,请勿商业性质转载,转载请注明来源(http://blog.youkuaiyun.com/inkfish )。
PropertySet 是由opensymphony组织开发的的一个开源项目,但是那个项目文档少,长时间没有更新,官方文档错误奇多,所以现在在项目中使用并不广泛。但这并不妨碍PropertySet成为一个优秀的key-value持久化模块,当前,PropertySet可以说已经够用。这里我整理书写了PropertySet的文档。
PropertySet最容易使用和上手的是memory方式,最常用的是xml、JDBC,另外Hibernate、EJB是较常用的方式。这里选择介绍memory、map、XML方式。
1.Demo
PropertySetDemo.java
config.xml
(XML形式下使用):
需要jar包:
1.propertyset-1.3.jar
2.propertyset中自带的第三方jar包:oscore-2.2.1.jar
、commons-logging-1.1.1.jar
3.xml形式时需要使用的解析的包:xalan.jar
4.其他demo程序用到的工具包:commons-lang-2.4.jar
、commons-io-1.4.jar
2.memory方式
memory顾名思义,把数据存到内存里,刚开始内存里没有东西,程序退出也不会保存,适合于做demo性质的小项目。初始化使用简单的“PropertySet ps = PropertySetManager.getInstance("memory", null);
”即可,然后就可以set和get,注意刚实例化里面什么数据都没有,get不出来东西。
3.map方式
map和memory类似,也是使用内存存取数据,区别是map开始需要初始化一个map作为初始参数传入,初始化代码:
初始化过程的具体实现类是com.opensymphony.module.propertyset.map.MapPropertySet
,初始化过程:
可以看出PropertySetManager.getInstance("map", map);
传入的map里可以嵌套一个key为"map",值为map类型的Map
,如果传入的map是一个空的Map
,则初始化出一个HashMap
的示例,但千万不能传入null。初始化完毕后,就可以随便使用。
4.XML方式
XML方式的初始化,一定是需要一个XML属性文件,属性文件的格式见上面的config.xml
,里面支持的类型有boolean
、int
、long
、double
、String
、text
、Date
、Properties
、xml
、Object。xml和Object现在还没研究透,实验也没完全成功,放一边不说。Date类型的数据格式是yyyy-MM-dd HH:mm:ss
,写死在PropertySet里的。String和text几乎一样,都按照String处理,但是如果调用了
save()
方法,text前后可能会加一些回车或空格,因此不建议使用text,如果需要使用,则在getText()
后需要trim()
一下。