Java 读取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");

你可能感兴趣的:(properties)