Java中如何获取spring中配置的properties文件内容

有2种方式:

一。

1、通过spring配置properties文件

[java] 
<bean id="propertyConfigurer" 
    class="com.tjsoft.base.util.CustomizedPropertyPlaceholderConfigurer"> 
    <property name="ignoreResourceNotFound" value="true" /> 
    <property name="locations"> 
        <list> 
            <value>/WEB-INF/config/jdbc.properties</value> 
            <value>/WEB-INF/config/mail.properties</value> 
            <value>/WEB-INF/config/system.properties</value> 
        </list> 
    </property> 
</bean>
其中class为自己定义的类

2、自定义类CustomizedPropertyPlaceholderConfigurer

[java] 
import java.util.HashMap; 
import java.util.Map; 
import java.util.Properties; 
 
import org.springframework.beans.BeansException; 
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; 
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
/**
 * 自定义PropertyPlaceholderConfigurer返回properties内容
 * 
 * @author LHY 2012-02-24
 * 
 */ 
public class CustomizedPropertyPlaceholderConfigurer extends 
        PropertyPlaceholderConfigurer { 
 
    private static Map<String, Object> ctxPropertiesMap; 
 
    @Override 
    protected void processProperties( 
            ConfigurableListableBeanFactory beanFactoryToProcess, 
            Properties props) throws BeansException { 
        super.processProperties(beanFactoryToProcess, props); 
        ctxPropertiesMap = new HashMap<String, Object>(); 
        for (Object key : props.keySet()) { 
            String keyStr = key.toString(); 
            String value = props.getProperty(keyStr); 
            ctxPropertiesMap.put(keyStr, value); 
        }  
    } 
 
    public static Object getContextProperty(String name) { 
        return ctxPropertiesMap.get(name); 
    } 
 
}  
这样就可以通过CustomizedPropertyPlaceholderConfigurer类来获取properties属性文件中的内容了

3、如何获取属性文件的内容

String host =  (String) CustomizedPropertyPlaceholderConfigurer.getContextProperty("mail.smtp.host");

原文地址:https://www.cnblogs.com/shz365/p/6952193.html