赞
踩
Property文档
Property简介
简而言之,PropertySet就是一个存储key-value对的模块,他能将key-value通过XML、EJB、Ofbiz、JDBC、JDO等进行存储,也可以自己实现AbstractPropertySet从而自定义更多的存储形式。PropertySet最典型的适用存储数据是配置信息、用户首选项等。在项目中,如果一些可以转化为key-value的信息在一开始无法确定存储位置,或者想可以灵活改变存储位置,那就可以考虑使用PropertySet。
PropertySet的优点是:1.轻量级;2.灵活;3.易用;4.适用于J2SE和J2EE平台。
PropertySet的配置
Property默认提供的存取方式有:aggregate、cached、jdbc、ejb、javabeans、map、memory、serializable、serializable、ofbiz、hibernate、ojb、xml。
配置文件的放置位置为:
1.propertyset.xml
2./propertyset.xml
3.META-INF/propertyset.xml
4./META-INF/propertyset.xml
5.META-INF/propertyset-default.xml
6./META-INF/propertyset-default.xml
PropertySet会按以上顺序挨个寻找,第一个被找到的即作为配置文件。由于propertyset的jar中自带propertyset-default.xml,因此多数情况下无需配置即可使用(JDBC或Hibernate情况下,需要指定JNDI等信息,不可缺省)。
关于配置文件的书写,可以参考默认配置文件,默认配置文件内容是:
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.InputStream;
- import java.util.HashMap;
- import org.apache.commons.io.IOUtils;
- import org.apache.commons.lang.StringUtils;
- import com.opensymphony.module.propertyset.PropertySet;
- import com.opensymphony.module.propertyset.PropertySetManager;
- import com.opensymphony.module.propertyset.xml.XMLPropertySet;
- public class PropertySetDemo {
- public static void main(String[] args) throws Exception {
- PropertySetDemo demo = new PropertySetDemo();
- demo.mapPsDemo();
- demo.memoryPsDemo();
- demo.xmlPsDemo();
- }
- public void memoryPsDemo() {
- System.out.println(StringUtils.center("Memory PropertySet Demo", 80, '*'));
- //memory是配置文件中定义的:<propertyset name="memory" class="com.opensymphony.module.propertyset.memory.MemoryPropertySet"/>
- PropertySet ps = PropertySetManager.getInstance("memory", null);
- ps.setBoolean("BooleanPS", true);
- ps.setString("name", "Tom");
- System.out.println(ps.getBoolean("BooleanPS"));
- System.out.println(ps.getString("name"));
- System.out.println(StringUtils.repeat("*", 80));
- }
-
- public void mapPsDemo() {
- System.out.println(StringUtils.center("Map PropertySet Demo", 80, '*'));
- @SuppressWarnings("unchecked")
- HashMap map = new HashMap();
- //memory是配置文件中定义的:<propertyset name="memory" class="com.opensymphony.module.propertyset.memory.MemoryPropertySet"/>
- PropertySet ps = PropertySetManager.getInstance("map", map);
- ps.setBoolean("BooleanPS", true);
- ps.setString("name", "Tom");
- System.out.println(ps.getBoolean("BooleanPS"));
- System.out.println(ps.getString("name"));
- System.out.println(StringUtils.repeat("*", 80));
- }
- public void xmlPsDemo() throws Exception {
- System.out.println(StringUtils.center("XML PropertySet Demo", 80, '*'));
- PropertySet ps = PropertySetManager.getInstance("xml", null);
- InputStream is = new FileInputStream("config.xml");
- ((XMLPropertySet) ps).load(is);
- IOUtils.closeQuietly(is);
- System.out.println(ps.getBoolean("aa"));
- System.out.println(ps.getInt("ab"));
- System.out.println(ps.getLong("ac"));
- System.out.println(ps.getDouble("ad"));
- System.out.println(ps.getString("ae"));
- System.out.println(ps.getText("af").trim());
- System.out.println(ps.getDate("ag"));
- System.out.println(ps.getProperties("ai"));
- ps.setBoolean("aa", false);
- ((XMLPropertySet) ps).save(new FileOutputStream("config.xml"));
- System.out.println(StringUtils.repeat("*", 80));
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。