项目中经常用到的配置文件,除了XML文件之外,还会用到Properties文件来存储一些信息,例如国际化的设置、jdbc连接信息的配置等。有时候也会把一些路径或者sql语句放到Properties中,这样就不用直接在Java代码中放置很多sql语句,看起来代码比较整齐。下面就分别用java和js介绍读取properties中的内容。
properties文件存储内容,可以简单的认为是key-value格式的,设置一个唯一的关键字,通过该关键字就可以读取它所代表的内容,在Java代码和JS代码中读取的原理都是这样的。
Java
在Java中,主要是采用的java.util.Properties类来承接的。主要过程是创建一个Properties对象,然后以流的形式读取properties文件,将该文件赋给Properties对象,就可以通过Properties对象来读取properties文件中的内容了。
- </pre><pre name="code" class="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
用JS来读取properties文件,需要引入一个jQuery的插件jquery.i18n.properties。这个插件主要是做国际化处理的,国际化一般是放到Properties文件中配置的,所以jquery提供了这个插件来读取properties文件。先把jquery引入js,再引入jquery.i18n.properties,将properties放置到某个位置,加上下面的代码就可以读取到了。
- 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,其实就是因为国际化的处理。