struts2對properties資源的處理
struts2對properties資源的處理
做了一些功能增強
包括:
可以讀取項的描述
可以讀取項所在的行號,文件路徑等
實現方式
繼承了java的java.util.Properties實現了一個類LocatableProperties完成此事。
LocatableProperties對外公布了load api完成properties文件的讀取,但內部邏輯還是靠其自定義的PropertiesReader完成的。
PropertiesReader繼承自java的java.io.LineNumberReader,主要利用其原有的構造方法,readLine等方法。
LocatableProperties在構造時或者構造完成後,需要向其傳遞Location
測試類
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資源的處理