項目中經常用到的配置文件,除了XML文件之外,還會用到Properties文件來存儲一些信息,例如國際化的設置、jdbc連接信息的配置等。有時候也會把一些路徑或者sql語句放到Properties中,這樣就不用直接在Java代碼中放置很多sql語句,看起來代碼比較整齊。下面就分別用java和js介紹讀取properties中的內容。
properties文件存儲內容,可以簡單的認為是key-value格式的,設置一個唯一的關鍵字,通過該關鍵字就可以讀取它所代表的內容,在Java代碼和js代碼中讀取的原理都是這樣的。
在Java中,主要是采用的java.util.Properties類來承接的。主要過程是創建一個Properties對象,然后以流的形式讀取properties文件,將該文件賦給Properties對象,就可以通過Properties對象來讀取properties文件中的內容了。
Java代碼:
package com.at21.landscaping.util; import java.io.InputStream; import java.util.Properties; public class SyscfgUtil{ private Properties props; public Properties getProperties(){ if(props == null){ props = new Properties(); InputStream in; try{ in = getClass().getResourceAsStream("/syscfg.properties"); props.load(in); } catch (Exception e){ LogUtils.error(e); } } } }
用JS來讀取properties文件,需要引入一個jQuery的插件jQuery.i18n.properties。這個插件主要是做國際化處理的,國際化一般是放到Properties文件中配置的,所以jquery提供了這個插件來讀取properties文件。先把jquery引入js,再引入jquery.i18n.properties,將properties放置到某個位置,加上下面的代碼就可以讀取到了。
js代碼:
function loadProperties(){ JQuery.i18n.properties({//加載properties文件 name:'syscfg',//properties文件的名稱 path:'config/',//properties文件的路徑 mode:'map',//用map的方式使用資源文件中的值 callback:function(){ console.log($.i18n.prop("landUrl"));//根據key值取得需要的資源 } }); }
默認加載的時候,其實需要加載三個properties文件,分別是syscfg.properties、syscfg_zh.properties和syscfg_zh_CN.properties,其實就是因為國際化的處理。