避免硬编码,json读取配置项,和代码分离

来源:互联网 发布:淘宝店家培训 编辑:程序博客网 时间:2024/05/11 12:57

为了避免硬编码,尤其是在使用git对项目版本进行管理的时候,我们需要将配置从代码中分离出来。可以将配置信息放入到json文件中:

configure.json文件如下:

{  "port": "2181",  "quorum": "192.168.1.103",  "master": "192.168.1.103:60000",  "fs": "hdfs://192.168.1.103:9000/",  "dbURL": "jdbc:mysql://192.168.1.101:3306/codeclone",  "user": "root",  "password": "123456",  "driver": "com.mysql.jdbc.Driver"}

HdfsConfiguration,java如下:

package config;import org.json.JSONObject;import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;public class HdfsConfiguration {private String fs;public String getFs(){return fs;}private HdfsConfiguration(){try{BufferedReader bf = new BufferedReader(new FileReader("src/main/java/config/configure.json"));String s;String content="";while((s = bf.readLine()) != null){content += s;}JSONObject jso = new JSONObject(content);fs = jso.getString("fs");bf.close();}catch(IOException e){e.printStackTrace();}}private static final HdfsConfiguration hc=new HdfsConfiguration();public static HdfsConfiguration getInstance(){return hc;}}

注意其中我写的configure.json的相对文件路径,当我使用./configure.json,就会提示读取不到;但是,当我使用src/.../configure.json就可以读取,可能是跟java web项目的相对路径有关。




0 0