java获取spring属性文件方式
1、在xml文件中直接获取,或者几个xml文件之间共享。
<!-- 加载全局配置文件 -->
<bean />//此包中包含Mail对象。
4、采用自定义类,继承spring中的PropertyPlaceholderConfigurer类来实现java中获取属性key
1)、spring配置
<bean id="propertyConfigurer"
value="true" />
<property name="locations">
<list>
<value>/WEB-INF/config/jdbc.properties</value>
<value>/WEB-INF/config/mail.properties</value>
<value>/WEB-INF/config/hibernate.properties</value>
</list>
</property>
</bean>
2)、自定义类ReadPropertyPlaceholderConfigurer.java。【可以实现通过此类的getContextProperty获取到对应的属性了。】
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类处理返回结果;
*
* @author yanghl
* @date 2013-03-24
*/
public class ReadPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer {
private static Map<String, Object> propertiesMap;
@Override
protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props) throws BeansException {
super.processProperties(beanFactoryToProcess, props);
propertiesMap = new HashMap<String, Object>();
for (Object key : props.keySet()) {
String keyStr = key.toString();
String value = props.getProperty(keyStr);
propertiesMap.put(keyStr, value);
}
}
public static Object getContextProperty(String name) {
return propertiesMap.get(name);
}
}
3)、在业务类中获取属性文件的内容
String mailStmp = (String)ReadPropertyPlaceholderConfigurer.getContextProperty("mail.stmp");