分别用Java和JS读取Properties文件内容
项目中经常用到的配置文件,除了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,其实就是因为国际化的处理。