自定义配置文件
配置文件名为: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”)