当前位置:   article > 正文

PropertySet简介和配置_property type netset

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

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等信息,不可缺省)。

  关于配置文件的书写,可以参考默认配置文件,默认配置文件内容是:

  1. import java.io.FileInputStream;
  2. import java.io.FileOutputStream;
  3. import java.io.InputStream;
  4. import java.util.HashMap;
  5. import org.apache.commons.io.IOUtils;
  6. import org.apache.commons.lang.StringUtils;
  7. import com.opensymphony.module.propertyset.PropertySet;
  8. import com.opensymphony.module.propertyset.PropertySetManager;
  9. import com.opensymphony.module.propertyset.xml.XMLPropertySet;
  10. public class PropertySetDemo {
  11. public static void main(String[] args) throws Exception {
  12. PropertySetDemo demo = new PropertySetDemo();
  13. demo.mapPsDemo();
  14. demo.memoryPsDemo();
  15. demo.xmlPsDemo();
  16. }
  17. public void memoryPsDemo() {
  18. System.out.println(StringUtils.center("Memory PropertySet Demo", 80, '*'));
  19. //memory是配置文件中定义的:<propertyset name="memory" class="com.opensymphony.module.propertyset.memory.MemoryPropertySet"/>
  20. PropertySet ps = PropertySetManager.getInstance("memory", null);
  21. ps.setBoolean("BooleanPS", true);
  22. ps.setString("name", "Tom");
  23. System.out.println(ps.getBoolean("BooleanPS"));
  24. System.out.println(ps.getString("name"));
  25. System.out.println(StringUtils.repeat("*", 80));
  26. }
  27. public void mapPsDemo() {
  28. System.out.println(StringUtils.center("Map PropertySet Demo", 80, '*'));
  29. @SuppressWarnings("unchecked")
  30. HashMap map = new HashMap();
  31. //memory是配置文件中定义的:<propertyset name="memory" class="com.opensymphony.module.propertyset.memory.MemoryPropertySet"/>
  32. PropertySet ps = PropertySetManager.getInstance("map", map);
  33. ps.setBoolean("BooleanPS", true);
  34. ps.setString("name", "Tom");
  35. System.out.println(ps.getBoolean("BooleanPS"));
  36. System.out.println(ps.getString("name"));
  37. System.out.println(StringUtils.repeat("*", 80));
  38. }
  39. public void xmlPsDemo() throws Exception {
  40. System.out.println(StringUtils.center("XML PropertySet Demo", 80, '*'));
  41. PropertySet ps = PropertySetManager.getInstance("xml", null);
  42. InputStream is = new FileInputStream("config.xml");
  43. ((XMLPropertySet) ps).load(is);
  44. IOUtils.closeQuietly(is);
  45. System.out.println(ps.getBoolean("aa"));
  46. System.out.println(ps.getInt("ab"));
  47. System.out.println(ps.getLong("ac"));
  48. System.out.println(ps.getDouble("ad"));
  49. System.out.println(ps.getString("ae"));
  50. System.out.println(ps.getText("af").trim());
  51. System.out.println(ps.getDate("ag"));
  52. System.out.println(ps.getProperties("ai"));
  53. ps.setBoolean("aa", false);
  54. ((XMLPropertySet) ps).save(new FileOutputStream("config.xml"));
  55. System.out.println(StringUtils.repeat("*", 80));
  56. }
  57. }



声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/249735
推荐阅读
相关标签
  

闽ICP备14008679号