package cn.iqoo.sms; import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer; import org.springframework.stereotype.Component; import java.util.Properties; /** * Created by jonath on 2017/11/14. */ public class PropertyConfigurer extends PropertyPlaceholderConfigurer { private Properties props; @Override protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props) throws BeansException { super.processProperties(beanFactoryToProcess, props); this.props = props; } public String getProperty(String key) { return this.props.getProperty(key); } public String getProperty(String key, String defaultValue) { return this.props.getProperty(key, defaultValue); } public Object setProperty(String key, String value) { return this.props.setProperty(key, value); } }
<bean id="propertyConfigurer" class="cn.iqoo.sms.PropertyConfigurer"> <property name="ignoreUnresolvablePlaceholders" value="true"/> <property name="ignoreResourceNotFound" value="true"/> <property name="locations"> <list> <value>classpath:app.properties</value> </list> </property> </bean>
然后就简单了:
propertyConfigurer.getProperty("keyname");