首页 > 代码库 > 24 配置项组织的一种方式

24 配置项组织的一种方式

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

/**
 * 所有配置项,配置加载与获取类
 */
public class Conf {
    public static final Logger LOG= LoggerFactory.getLogger(Conf.class);
    public static final String DEFAULT_HBASE_ROOT_DIR="/hbase/data";
    private Properties propConf;

    public Conf(String confPath) {
        if(new File(confPath).exists()){
            propConf=new Properties();
            try {
                propConf.load(new FileInputStream(new File(confPath)));
            } catch (IOException e) {
                LOG.error("加载配置文件:{},出现异常,异常信息:{}",confPath,e.getMessage());
                e.printStackTrace();
            }
        }else{
            LOG.error("配置文件:{}不存在,请查看配置路径是否正确",confPath);
        }
    }

    public static void main(String[] args) {
        Conf conf=new Conf("F:\\IDE\\HbaseTools\\src\\main\\resources\\exportConf.properties");
        String inputIps=conf.getInputIps();
        System.out.println(inputIps);
    }

    private String getValue(String key){
        if(null==propConf){
            return null;
        }
        return propConf.getProperty(key);
    }
    public String getSourceInput(){
        return  getValue(SourceConf.SOURCE_INPUT_FROM);
    }
    public String getInputIps(){
        return getValue(InputConf.INPUT_ENV_IPS);
    }
    public String getInputTableNames(){
        return getValue(InputConf.INPUT_HBASE_TABLENAME);
    }
    public String getInputRootDir(){
        String rootDir=getValue(InputConf.INPUT_HBASE_ROOTDIR);
        if(null==rootDir){
            rootDir=DEFAULT_HBASE_ROOT_DIR;
        }
        return rootDir;
    }

    public String getLocalDir(){
        return getValue(LocalConf.LOCAL_STORAGE_DIR);
    }

    public String getOutputIps(){
        return getValue(OutputConf.OUTPUT_ENV_IPS);
    }

    public String getOutputUserName(){
        return getValue(OutputConf.OUTPUT_ENV_USERNAME);
    }
    public String getOutputPassword(){
        return getValue(OutputConf.OUTPUT_ENV_PASSWORD);
    }
    public String getOutputHbaseRootDir(){
        String rootDir=getValue(OutputConf.OUTPUT_HBASE_ROOTDIR);
        if(null==rootDir){
            rootDir=DEFAULT_HBASE_ROOT_DIR;
        }
        return rootDir;
    }
    public String getOutputHbaseSetupDir(){
        return getValue(OutputConf.OUTPUT_ENV_HBASE_SETUP_DIR);
    }

    /**
     #数据来源 hdfs,local
     source.input.from=hdfs
     */
    public class SourceConf{
        public static final String SOURCE_INPUT_FROM="source.input.from";
        public static final String SOURCE_INPUT_FROM_HDFS="hdfs";
        public static final String SOURCE_INPUT_FROM_LOCAL="local";
    }
    /**
     #input为hbase数据迁出集群信息,output为hbase迁入集群信息
     input.env.ips=10.17.139.126,10.17.139.127,10.17.139.125
     #ALL 表示所有的表,tableName1,tableName2,tableName3...表示只导出这些表
     input.hbase.tableNames=ALL
     input.hbase.rootdir
     */
    public class InputConf{
        public static final String INPUT_ENV_IPS="input.env.ips";
        public static final String INPUT_HBASE_TABLENAME="input.hbase.tableNames";
        public static final String INPUT_HBASE_ROOTDIR="input.hbase.rootdir";
    }

    /**
     local.storage.dir=E:\hbase
     */
    public class LocalConf{
        public static final String LOCAL_STORAGE_DIR="local.storage.dir";
    }

    /**
     output.env.ips=10.17.139.126,10.17.139.127,10.17.139.125
     output.env.userName=root
     output.env.password=123456
     #output.env.hbaseSetupDir=
     #output.hbase.rootdir=
     */
    public class OutputConf{
        public static final String OUTPUT_ENV_IPS="output.env.ips";
        public static final String OUTPUT_ENV_USERNAME="output.env.userName";
        public static final String OUTPUT_ENV_PASSWORD="output.env.password";
        public static final String OUTPUT_ENV_HBASE_SETUP_DIR="output.env.hbaseSetupDir";
        public static final String OUTPUT_HBASE_ROOTDIR="output.hbase.rootdir";
    }
}

 

24 配置项组织的一种方式