方法一:直接读取文件
public class ApiUrl {
public static ApiUrl getInstance(){
if (null == instance){
instance = new ApiUrl();
instance.initParams();
}
return instance;
}
private void initParams(){
InputStream in = getClass().getClassLoader().getResourceAsStream("/interface.properties");
Properties propertise = new Properties();
try {
propertise.load(in);
for (Map.Entry<Object, Object> prop : propertise.entrySet()){
String propertyName = (String)prop.getKey();
String propertyValue = (String)prop.getValue();
switch (propertyName){
case "UserName":
name= propertyValue;
break;
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
private ApiUrl(){}
private static ApiUrl instance;
private String name;
}
方法二:使用分散配置:
新创建一个data.properties文件,内容如下:
UserName=张三
Age=23
使用spring的特殊bean来完成。
<bean id="configProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="locations">
<list>
<value>classpath:data.properties</value>
</list>
</property>
</bean>
然后就可以在xml配置文件中引用配置:
<bean id="userService" class="com.service.UserService">
<property name="name" value="${UserName}"/>
<property name="age" ref="${Age}"/>
</bean>
也可以在类中直接使用:
@Configuration
public class UserConfig {
@Value("${UserName}")
private String userName;
@Value("${Age}")
private String age;
}
方法三:自定义分散配置类
public class PropertyConfigurerUtils extends PropertyPlaceholderConfigurer {
private static Map<String, String> propertiesMap = new HashMap<String, String>();
@Override
protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props) throws BeansException {
super.processProperties(beanFactoryToProcess, props);
for (Object key : props.keySet()) {
String keyStr = key.toString();
String value = props.getProperty(keyStr);
System.out.println(key+" : " +value);
propertiesMap.put(keyStr, value);
}
}
public static String getProperty(String name) {
return propertiesMap.get(name);
}
}
spring配置文件中配置:
<bean class="cn.harvetech.util.common.PropertyConfigurerUtils">
<property name="locations">
<list>
<value>classpath:system.properties</value>
<value>classpath:config.properties</value>
</list>
</property>
</bean>
使用的时候:
PropertyConfigurerUtils.getProperty(Const.CANCEL_MESSAGE);