struts2对properties资源的处理

做了一些功能增强

包括:

可以读取项的描述

可以读取项所在的行号,文件路径等

实现方式

继承了java的java.util.Properties实现了一个类LocatableProperties完成此事。

LocatableProperties对外公布了load api完成properties文件的读取,但内部逻辑还是靠其自定义的PropertiesReader完成的。

PropertiesReader继承自java的java.io.LineNumberReader,主要利用其原有的构造方法readLine等方法。

LocatableProperties在构造时或者构造完成后,需要向其传递Location对象(包括文件描述,文件路径等信息),否则LocatableProperties是没法知道文件文件位置的。

测试类

LocatablePropertiesTest

z

 @Test
public void testLocatableProperties001()
{
try
{
String propertiesPath = "/cn/chenxiaguang/demo/sss/xwork2/util/location/testConfigData.properties";
Location loc = new LocationImpl("测试配置文件", this.getClass().getResource(propertiesPath).toString());
LocatableProperties locatableProperties = new LocatableProperties(loc);
locatableProperties.load(this.getClass().getResourceAsStream(propertiesPath));
System.out.println(locatableProperties.getPropertyLocation("a"));
System.out.println(locatableProperties.getPropertyLocation("b"));
}
catch (IOException e)
{
e.printStackTrace();
}
}

testConfigData.properties

#test a
a=1 #test b
b=2

但是在打印 时并不会打印出properties文件的描述信息。

打印结果信息如下:


#test a

- file:/Users/simon/600.self/05.code/04.java/10.struts2-src-study/struts2-src-study/WebContent/WEB-INF/classes/cn/chenxiaguang/demo/sss/xwork2/util/location/testConfigData.properties:3:0

#test b

- file:/Users/simon/600.self/05.code/04.java/10.struts2-src-study/struts2-src-study/WebContent/WEB-INF/classes/cn/chenxiaguang/demo/sss/xwork2/util/location/testConfigData.properties:6:0

当然 struts2还对xml文件等做了信息定位,主要使用sax api的特性完成。


最新文章

  1. [原创]Linq to xml增删改查Linq 入门篇:分分钟带你遨游Linq to xml的世界
  2. java mybatis XML文件中大于号小于号转义
  3. 如何用 matlab 在图片上绘制矩形框 和 添加文字 ?
  4. HttpWebRequest 注意
  5. [HNOI2004]Language L语言
  6. Unity Shader 知识点总结(一)
  7. 【Spring】Spring随笔索引
  8. [Winfrom] 使用一个启动快捷方式,打开2个不同的窗体并且共用一个缓存空间
  9. python3对于时间的处理
  10. 浅谈 REST 和 RESTFul API
  11. ssh架构之hibernate(一)简单使用hibernate完成CRUD
  12. style标签下的CSS代码的显示与实时编辑
  13. protobuf中的编码规则
  14. sql2008,sa不能使用:不能为主体 sa 中设置凭据
  15. javascript prototype学习
  16. vue实现结算淘宝购物车效果
  17. ros 杀掉所有节点
  18. Tomcat项目部署问题记录
  19. Python-字符编码详解
  20. Java-Runoob-高级教程:Java 文档注释

热门文章

  1. I/O操作总结(一)
  2. 最具士兵突击实战类型的JavaScript
  3. 微软大礼包 | 集合在线学习资源,助你秒变AI达人
  4. 2013年省市区/县数据SQL Server(SQL语句)
  5. userBean-作用范围session
  6. ABAP Development Tools的语法高亮实现原理
  7. fence_vmware_soap UnicodeEncodeError
  8. Python -- 可迭代对象和迭代器
  9. Unity学习之路——C#相关
  10. Python爬虫系列-Requests库详解