1. 程式人生 > >struts2對properties資源的處理

struts2對properties資源的處理

功能增強 並不會 targe struts2 文件 cep hub resource tco

struts2對properties資源的處理

做了一些功能增強

包括:

可以讀取項的描述

可以讀取項所在的行號,文件路徑等

實現方式

繼承了java的java.util.Properties實現了一個類LocatableProperties完成此事。

LocatableProperties對外公布了load api完成properties文件的讀取,但內部邏輯還是靠其自定義的PropertiesReader完成的。

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

LocatableProperties在構造時或者構造完成後,需要向其傳遞Location

對象(包括文件描述,文件路徑等信息),否則LocatableProperties是沒法知道文件文件位置的。

測試類

LocatablePropertiesTest

z

 1 @Test
 2     public void testLocatableProperties001()
 3     {
 4         try
 5         {
 6             String propertiesPath = "/cn/chenxiaguang/demo/sss/xwork2/util/location/testConfigData.properties";
7 Location loc = new LocationImpl("測試配置文件", this.getClass().getResource(propertiesPath).toString()); 8 LocatableProperties locatableProperties = new LocatableProperties(loc); 9 locatableProperties.load(this.getClass().getResourceAsStream(propertiesPath)); 10 System.out.println(locatableProperties.getPropertyLocation("a"));
11 System.out.println(locatableProperties.getPropertyLocation("b")); 12 } 13 catch (IOException e) 14 { 15 e.printStackTrace(); 16 } 17 }

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的特性完成。

struts2對properties資源的處理