java中读取服务器配置文件方法

自定义配置文件

配置文件名为:project.properties,内容如下:

1
2
3
# 是否开启逻辑删除
del.filter.on= false
domain=http: //www.366go.cn/

修改Spring配置文件

之前代码:

1
2
3
4
5
6
7
8
< bean id = "propertyConfigurer"
     class = "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" >
     < property name = "locations" >
         < list >
             < value >classpath:dbinfo.properties</ value >
         </ list >
     </ property >
</ bean >

修改后的配置文件

1
2
3
4
5
6
7
8
9
< bean id = "propertyConfigurer"
     class = "com.hisun.core.util.CustomizedPropertyPlaceholderConfigurer" >
     < property name = "locations" >
         < list >
             < value >classpath:dbinfo.properties</ value >
             < value >classpath:project.properties</ value >
         </ list >
     </ property >
</ bean >

加入了classpath:project.properties,其为自定义的配置文件
将PropertyPlaceholderConfigurer类修改为自定义类CustomizedPropertyPlaceholderConfigurer,
PropertyPlaceholderConfigurer类的具体作用可以查资料这块儿不做详细介绍

定义CustomizedPropertyPlaceholderConfigurer类

类的具体内容为下,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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;
 
public class CustomizedPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer {
     private static Map ctxPropertiesMap;
 
     @Override
     protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess,
                                      Properties props) throws BeansException {
         super .processProperties(beanFactoryToProcess, props);
         ctxPropertiesMap = new HashMap();
         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);
     }
}
定义获取配置文件中值的类SpringPropertiesUtil

类的具体内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
 
/**
  * Spring-PropertiesUtil工具类 -获取属性值
  *
  */
@Component
public class SpringPropertiesUtil implements ApplicationContextAware {
     public static final String KEY = "propertyConfigurer" ;
     private static ApplicationContext applicationContext;
 
     public void setApplicationContext(ApplicationContext applicationContext)
             throws BeansException {
         SpringPropertiesUtil.applicationContext = applicationContext;
     }
 
     public static ApplicationContext getApplicationContext() {
         return applicationContext;
     }
 
     /**
      * 获取配置文件中的内容
      *
      * @param keyName
      * @return
      */
     public static String parseStr(String keyName) {
         CustomizedPropertyPlaceholderConfigurer cp = (CustomizedPropertyPlaceholderConfigurer) applicationContext
                 .getBean(KEY);
         return cp.getContextProperty(keyName).toString();
     }
 
     /**
      * 获取配置文件中的内容
      *
      * @param keyName
      * @return
      */
     public static int parseInt(String keyName) {
         CustomizedPropertyPlaceholderConfigurer cp = (CustomizedPropertyPlaceholderConfigurer) applicationContext
                 .getBean(KEY);
         return Integer.parseInt(cp.getContextProperty(keyName).toString());
     }
 
     /**
      * 获取配置文件中的内容
      *
      * @param keyName
      * @return
      */
     public static double parseDouble(String keyName) {
         CustomizedPropertyPlaceholderConfigurer cp = (CustomizedPropertyPlaceholderConfigurer) applicationContext
                 .getBean(KEY);
         return Double.parseDouble(cp.getContextProperty(keyName).toString());
     }
}

这样,在项目当中就能够方便快速的获取properties文件中配置的参数
如SpringPropertiesUtil.parseStr(“content”)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值