本文概览:介绍了通过java.util.Properties类和Spring配置中获取配置文件中值
1 Properties文件
1.1 使用java.util.Properties类
使用Properties来读取配置文件,代码举例如下
public class TestProperty {
@Test
public void testProperty() {
Properties properties = new Properties();
String configFile = "/test/resources/app-config.properties";
try {
FileInputStream fis =
new FileInputStream(configFile);
properties.load(fis);
String value = properties.getProperty("service.name");
System.out.println(value);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
publicclassTestProperty{
@Test
publicvoidtestProperty(){
Propertiesproperties=newProperties();
StringconfigFile="/test/resources/app-config.properties";
try{
FileInputStreamfis=
newFileInputStream(configFile);
properties.load(fis);
Stringvalue=properties.getProperty("service.name");
System.out.println(value);
}catch(Exceptione){
System.out.println(e.getMessage());
}
}
}
有些地方需要注意:
1、如果配置文件中存在转移符号“\”,那么会自动识别。如下
在配置文件配置“key=2344\@123”,其实效果和“key=2344@123”效果一样。
1.2 Spring配置
在xml中配置如下
1
2
这里需要注意一点就是在spring mvc的工程里面,root的上下文和dispatcherServlet对应的mvc.xml中都需要增加一个这个配置,即工程中需要两个地方配置这个,原因是什么?我们可以看下这两个上下文初始化过程
第一步 ContextLoaderListener对root上下文进行初始化,通过解析xml文件和properties文件初始化bean,然后装载到上下文中。
第二步 DispatcherServlet初始化自己上下文,通过解析xml文件和properties文件初始化bean,然后装载到上下文中;最后把父上下文属性设置为root上下文。
通过以上我们可以看出,这两个上下文的父子关系是在初始化完成之后确定的。在初始化过程中要使用properties,所以需要指定两份
2 环境变量
分为系统环境变量和JVM环境变量 两类。
2.1 JVM环境变量
在运行命令时通过-D指定,如下
java -DparamName=xxx Test.class
1
java-DparamName=xxxTest.class
也可以在代码中设置,
System.setProperty("paramName","xxx");
1
System.setProperty("paramName","xxx");
在程序获取
System.getProperty("paramName");
1
System.getProperty("paramName");
问题1:JVM环境变化和Propeties文件关系
System中jvm的环境变量是使用Properties对象保存的。
Class System {
// 保存JVM的环境变量
private static Properties props;
}
1
2
3
4
ClassSystem{
// 保存JVM的环境变量
privatestaticPropertiesprops;
}
可以通System.setProperties(Properties props) 将Propeties转换JVM的环境变量。
2.2 系统环境变量
代码如下:
System.getenv("paramName");
1
System.getenv("paramName");
(全文完)