本文主要是介绍单例模式的java配置文件读取器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
单例模式的java配置文件读取器
Spring的@Value注解很好用,直接给变量注入配置文件中的值。
这里用单例模式配合java的properties类实现一个配置文件读取器。
最佳实践是用自定义注解实现。
配置文件
test.properties
port=8080
program.name=test
位于项目的根目录中。
运行效果
Main.java
import cn.pangpython.test.utils.PropertiesLoader;public class Main {public static void main(String[] args) {PropertiesLoader propertiesLoader = PropertiesLoader.getInstance();String port_str = propertiesLoader.getOneProp("port");String program_name = propertiesLoader.getOneProp("program.name");System.out.println("port:"+port_str);System.out.println("program name:"+program_name);}
}
PropertiesLoader.java
package cn.pangpython.test.utils;import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;/*** Created by pangPython on 2017/9/20.*/
public class PropertiesLoader {private static PropertiesLoader m_propertiesLoader = null;private Properties properties;/*** 获取唯一实例** @return*/public static PropertiesLoader getInstance(){if (m_propertiesLoader == null){synchronized (PropertiesLoader.class){if(m_propertiesLoader == null){m_propertiesLoader = new PropertiesLoader();}}}return m_propertiesLoader;}/*** 构造方法**/private PropertiesLoader() {properties = new Properties();try {properties.load(new FileInputStream("test.properties"));} catch (IOException e) {e.printStackTrace();}}/*** 根据key获取一个配置的值** @param key* @return*/public String getOneProp(String key){return properties.getProperty(key);}
}
这篇关于单例模式的java配置文件读取器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!