当前位置: 代码迷 >> 综合 >> properties文件的读取封装
  详细解决方案

properties文件的读取封装

热度:59   发布时间:2024-02-10 05:09:47.0

Java Properties资源配置封装Get

Spring容器注入ConfigurationContext前提下获取配置文件变量:

private static final String STRING = ConfigurationContext.getValue("keyName");

 封装如下:

public class ConfigurationContext {private volatile Properties properties;private volatile static ConfigurationContext context;//配置文件名private static final String DEFAULT_CONFIG_FILE = "config.properties";private ConfigurationContext(String fileName) throws IOException {ClassLoader classLoader = ConfigurationContext.class.getClassLoader();InputStream resourceAsStream = classLoader.getResourceAsStream(fileName);if (resourceAsStream == null) {throw new FileNotFoundException("Cannot find configuration file: " + fileName);}this.properties = new Properties();this.properties.load(resourceAsStream);}public static ConfigurationContext init(String fileName) throws IOException {if (ConfigurationContext.context == null) {ConfigurationContext.context = new ConfigurationContext(fileName);}return ConfigurationContext.context;}//Spring容器初始化指定调用方法public static ConfigurationContext init() throws IOException {return init(DEFAULT_CONFIGURATION_FILE);}//获取变量 return为字符串 ,可重载return 指定Type类型public static String getValue(String key) {isInitialized();return ConfigurationContext.context.properties.getProperty(key);}private static void isInitialized() {if (ConfigurationContext.context == null) {throw new RuntimeException("ConfigurationContext instance haven't been initialized");}}}

注入Spring容器需设置:

<!-- 系统配置上下文组件 这里name对该封装可有可无 -->
<bean name="configurationContext" class="********.ConfigurationContext" factory-method="init" >
</bean>

 

  相关解决方案