admin管理员组文章数量:1641859
一、前言
我们在进行编程开发时,常常需要用到一些配置信息,比如配置jdbc的连接属性,如果硬编码在java代码中,则不利于维护,比如数据库位置发生了迁移,还得去改代码。最佳的方式应该放在配置文件中:如xml文件、properties文件等,利于维护。下面我们就来封装一个Properties工具类。
二、属性文件
我们以数据路连接信息为例
在src(后面会详解,便于直接使用jdbc.properties名称加载)下新建文件:jdbc.properties
driver = com.mysql.jdbc.Driver
url = jdbc:mysql://localhost:3306/test
username = root
password = root
三、封装PropertisUtil
import java.io.IOException;
import java.util.Properties;
public class PropertiesUtil {
private static Properties properties = null;
// 初始化
static {
properties = new Properties();
try {
properties.load(PropertiesUtil.class.getClassLoader().getResourceAsStream("jdbc.properties"));
} catch (IOException e) {
throw new RuntimeException(e.getMessage(), e);
}
}
// 获取值
public static String getValue(String key) {
return properties.getProperty(key);
}
}
由于Properties是线程安全的,故我们只需维护一个实例即可。 |
路径问题:jdbc.properties与PropertiesUtil可以在不同的文件夹下(source folder)、但jdbc.properties不能放在包中。 |
也可以使用真实路径,使用Bufferreader来加载,参考load需要传入的参数。 |
public class Main {
public static void main(String[] args) {
System.out.println(PropertiesUtil.getValue("driver"));
System.out.println(PropertiesUtil.getValue("url"));
System.out.println(PropertiesUtil.getValue("username"));
System.out.println(PropertiesUtil.getValue("password"));
}
}
当然这里的工具类有几个问题:
一个是jdbc.propertis还是硬编码的,
第二个是没有写修改属性等方法,
第三个是单例模式创建问题。
由于实际使用过程中,一般都只涉及读取。第二个问题不用考虑,第一个问题将propertis的配置文件作为参数传入。第三个问题需要加入私有构造和双重检查机制创建单例对象。
本文标签: 工具PropertiesUtil
版权声明:本文标题:PropertiesUtil工具类 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1729330533a1196334.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论