欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

配置文件读取(架构师的成长之路---第2篇)

程序员文章站 2022-03-24 12:43:24
开篇后第一个知识点,本想写数据库连接池,仔细一想还是放弃了,改写为《配置文件读取》。 毕竟项目中的基础信息,比如说数据库连接信息是需要配置在项目的配置文件中的。 重点介绍 配置文件名称:config.properties 普通小项目,很多配置项用不到。但作为架构师,这些是必备要素,要不然怎么在别人面 ......

开篇后第一个知识点,本想写数据库连接池,仔细一想还是放弃了,改写为《配置文件读取》。

毕竟项目中的基础信息,比如说数据库连接信息是需要配置在项目的配置文件中的。

重点介绍

resourcebundle.getbundle("配置文件名称").getstring("配置文件内的key值");

 

配置文件名称:config.properties

#数据库连接文件配置。普通项目的数据库连接应该就一个文件,但此处有两个。为了解决数据库集群时负载均衡或者数据库的读写分离准备。
jdbcs=sqlserver,jdbc53
#文件上传服务器的配置,普通项目应该用不到 filesrealpath=z: filescontextpath=http://127.0.0.1:8080/files/

#缓存服务器配置(项目进行分布式部署时,解决缓存同步。与memcached、redis功能类似) cacheserver=http://127.0.0.1:8080/um/cacheservice #缓存服务器配置(不同项目之间共享缓存时使用) cacheproject=um
#服务端发送的api接口地址 remoteanswer=http://127.0.0.1:8080/um/remoteanswer

普通小项目,很多配置项用不到。
但作为架构师,这些是必备要素,要不然怎么在别人面前显示自己的高大上呢!

 java类内容:

package com.keji10.core.commons;

import java.util.resourcebundle;

import org.apache.log4j.logger;

import com.keji10.core.exception.managerexception;

public class configbean {
    // 单例begin
    private logger logger = logger.getlogger(this.getclass());
    private static configbean configbean = new configbean();
    private resourcebundle resourcebundle;

    private configbean() {
        resourcebundle = resourcebundle.getbundle("config");
    }

    public static configbean getinstance() {
        return configbean;
    }

    // 单例end

    /**
     * 获取数据库的配置文件名
     * 
     * @return
     */
    public string getjdbcs() {
        try {
            return resourcebundle.getstring("jdbcs");
        } catch (exception e) {
            return "jdbc";
        }
    }

    /**
     * 获取文件保存磁盘的根目录地址
     * 
     * @return
     */
    public string getfilesrealpath() {
        try {
            return resourcebundle.getstring("filesrealpath");
        } catch (exception e) {
            return null;
        }
    }

    /**
     * 获取文件保存磁盘后的访问根地址
     * 
     * @return
     */
    public string getfilescontextpath() {
        try {
            return resourcebundle.getstring("filescontextpath");
        } catch (exception e) {
            return null;
        }
    }

    /**
     * 获取缓存服务的地址
     * 
     * @return
     */
    public string getcacheserver() {
        try {
            return resourcebundle.getstring("cacheserver");
        } catch (exception e) {
            return null;
        }
    }

    /**
     * 获取当前项目在缓存服务器的别名
     * 
     * @return
     */
    public string getcacheproject() {
        try {
            return resourcebundle.getstring("cacheproject");
        } catch (exception e) {
            return null;
        }
    }

    /**
     * 获取远程服务器接口地址
     * 
     * @return
     */
    public string getremoteanswer() {
        try {
            return resourcebundle.getstring("remoteanswer");
        } catch (exception e) {
            return null;
        }
    }

    /**
     * 其他自定义配置
     * 
     * @param type
     * @return
     * @throws managerexception
     */
    public string gettype(string type) throws managerexception {
        string value;
        try {
            value = resourcebundle.getstring(type);
        } catch (exception e) {
            value = null;
        }
        if (validate.isnull(value)) {
            logger.error("获取配置文件" + type + "失败");
            throw new managerexception("获取配置文件" + type + "失败");
        }
        return value;
    }

}
下一篇介绍,数据库连接池的封装。
很多人会问,spring的数据库连接是现成的,我们为什么还要自己封装数据库连接池呢?
那我就要反问了,你能使spring的数据库连接池很轻松的支持项目的负载均衡和读写分离吗?
架构师的成长之路是艰难的,坚持!