当前位置:   article > 正文

Java静态内部类单例模式读取Properties配置文件_static在java中可以配置到properties文件中吗

static在java中可以配置到properties文件中吗

在Java开发中,可能需要把一些配置参数写入properties配置文件中,在这里介绍一种通过静态内部类单例模式来读取的properties文件的方式。

1.properties文件配置路径
在这里插入图片描述
在resources下新建配置文件test.properties,如果对于Java读取指定资源输入流不太了解的话可以先移步至 Java的Class.getClassLoader().getResourceAsStream()与Class.getResourceAsStream()理解

2.PropertiesUtil工具类

public class PropertiesUtil {

	/** 配置文件路径 */
	private final static String PROPERTIES_PATH = "test.properties";

	private static Properties properties;

	private PropertiesUtil() {
		readProperties();
	}

	/* 静态内部类获得外部类实例,在构造方法中读取配置文件 */
	private static class PropStaticInner {

		private static final PropertiesUtil INSTANCE = new PropertiesUtil();
	}

	public static PropertiesUtil getInstance() {
		return PropStaticInner.INSTANCE;
	}

	private static void readProperties() {
		properties = new Properties();
		InputStream in = PropertiesUtil.class.getClassLoader().getResourceAsStream(PROPERTIES_PATH);
		try {
			properties.load(in);
		} catch (IOException e) {
			// 日志和异常处理
		} finally {
			try {
				in.close();
			} catch (IOException e) {
				// 日志和异常处理
			}
		}
	}

	public Properties getProps() {
		return properties;
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

静态内部类实现单例模式:外部类加载时不会立即加载内部类,就不会去初始化INSTANCE。只有当 getInstance() 方法第一次被调用时,才会加载内部类,从而初始化INSTANCE。

3. 使用方法

Properties props = PropertiesUtil.getInstance().getProps();
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/157729
推荐阅读
相关标签
  

闽ICP备14008679号