配置文件读取(架构师的成长之路---第2篇)
程序员文章站
2022-07-06 11:56:51
开篇后第一个知识点,本想写数据库连接池,仔细一想还是放弃了,改写为《配置文件读取》。 毕竟项目中的基础信息,比如说数据库连接信息是需要配置在项目的配置文件中的。 重点介绍 配置文件名称: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的数据库连接池很轻松的支持项目的负载均衡和读写分离吗?
架构师的成长之路是艰难的,坚持!