Java基于Spring配置读取properties文件

本文内容纲要:Java基于Spring配置读取properties文件

根据spring配置文件的 PropertiesFactoryBean和 PropertyPlaceholderConfigurer可以选择不同的加载方式,我是使用System.setProperty(key, value),代码中可以直接用System.getProperty(key)取value的值

一、PropertyPlaceholderConfigurer

PropertyPlaceholderConfigurer是解决 properties 文件占位符问题,实现 PropertiesLoaderSupport 类

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

<property name="locations">

<list>

<value>classpath:jdbc.properties</value>

<value>classpath:redis.properties</value>

</list>

</property>

<!-- 忽略不可解析的 -->

<property name="ignoreUnresolvablePlaceholders" value="true" />

</bean>

package com.phil.common.prop;

import java.util.Map.Entry;

import java.util.Properties;

import org.apache.log4j.Logger;

import org.springframework.beans.factory.InitializingBean;

import org.springframework.stereotype.Component;

/**

* 加载Properties文件

* @author phil

* @date 2017年8月13日

*

*/

@Component

public class InitializingProperties implements InitializingBean {

private static final Logger logger = Logger.getLogger(InitializingProperties.class);

/*

* (non-Javadoc)

*

* @see

* org.springframework.beans.factory.InitializingBean#afterPropertiesSet()

*/

@Override

public void afterPropertiesSet() throws Exception {

Properties props = new Properties();

props.load(InitializingProperties.class.getClassLoader().getResourceAsStream("test1.properties"));

props.load(InitializingProperties.class.getClassLoader().getResourceAsStream("test2.properties"));

for (Entry<Object, Object> e : props.entrySet()) {

System.setProperty(e.getKey().toString(), e.getValue().toString());

logger.info(e.getKey().toString() + "---" + e.getValue().toString());

}

}

}

二、PropertiesFactoryBean

PropertiesFactoryBean 是PropertiesLoaderSupport 直接的实现类

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertiesFactoryBean">

<property name="location">

<value>classpath:portal_dev.properties</value>

</property>

</bean>

package com.phil.common.prop;

import java.util.Map.Entry;

import java.util.Properties;

import org.apache.log4j.Logger;

import org.springframework.beans.factory.InitializingBean;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Component;

/**

* 加载Properties文件

* @author phil

* @date 2017年8月13日

*

*/

@Component

public class InitializingProperties implements InitializingBean {

private static final Logger logger = Logger.getLogger(InitializingProperties.class);

@Autowired

private Properties propertyConfigurer;

/*

* (non-Javadoc)

*

* @see

* org.springframework.beans.factory.InitializingBean#afterPropertiesSet()

*/

@Override

public void afterPropertiesSet() throws Exception {

for (Entry<Object, Object> e : propertyConfigurer.entrySet()) {

System.setProperty(e.getKey().toString(), e.getValue().toString());

logger.info(e.getKey().toString() + "---" + e.getValue().toString());

}

}

}

本文内容总结:Java基于Spring配置读取properties文件

原文链接:https://www.cnblogs.com/phil_jing/p/7355509.html

以上是 Java基于Spring配置读取properties文件 的全部内容, 来源链接: utcz.com/z/296477.html

回到顶部