首页 > 代码库 > Spring PropertyPlaceholderConfigure 载入配置文件
Spring PropertyPlaceholderConfigure 载入配置文件
在開始这篇博客的主题之前,我们先来了解一下Spring配置文件以及包括的相关内容。
图片来自:http://book.51cto.com/art/201004/193743.htm(表示感谢)
Spring同意我们通过外部属性文件来配置其容器上下文属性值。
比如。对于数据源中完毕连接数据库的部分。我们能够通过属性文件里的键值对完毕对属性值的填充,类似${key}。其关系例如以下:
问题一. Spring怎么载入单个属性文件?
方法一:通过申明PropertyPlaceholderConfigurer bean对象完毕配置文件的载入。
<beanid="testProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <propertyname="location"value="http://www.mamicode.com/classpath:test.properties"/> </bean>
当中test.properties属性文件内容例如以下:
dbc.driverClassName=net.sourceforge.jtds.jdbc.Driver jdbc.url=jdbc\:jtds\:sqlserver\://localhost\:1433/test jdbc.username=sa jdbc.password=123456
载入之后,再通过${key}完毕属性值得填充,比如:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close"> <property name="driverClassName" value="http://www.mamicode.com/${jdbc.driverClassName}" /> <property name="url" value="http://www.mamicode.com/${jdbc.url}"/> <property name="username" value="http://www.mamicode.com/${jdbc.username}"/> <property name="password" value="http://www.mamicode.com/${jdbc.password}"/> </bean>
方法二:通过context:property-placeholder属性完毕载入
详细例如以下:
<context:property-placeholderlocation="classpath:test.properties" />
问题二:上述载入方式时载入一个properties文件,假设要载入多个文件,该怎样实现?
事实上非常easy,例如以下:
<propertyname="systemPropertiesModeName"value="http://www.mamicode.com/SYSTEM_PROPERTIES_MODE_OVERRIDE" /> <property name="ignoreResourceNotFound" value="http://www.mamicode.com/true" /> <property name="locations"> <list> <value>classpath:test1.properties</value> <value>classpath:test2.properties </value> </list> </property>
当中。ignore-resource-not-found:假设属性文件找不到,是否忽略,默认false,即不忽略,找不到将抛出异常。
systemPropertiesModeName:指示后面的配置文件里的值是否会覆盖前面的值,
SYSTEM_PROPERTIES_MODE_FALLBACK:在解析一个占位符的变量的时候。假设不能获取到该变量的值。就会拿系统属性来尝试,
SYSTEM_PROPERTIES_MODE_OVERRIDE:在解析一个占位符的时候。会先用系统属性来尝试,然后才会用指定的属性文件,
SYSTEM_PROPERTIES_MODE_NEVER:从来都不会使用系统属性来尝试。
问题三:有些时候,我们不希望载入project文件夹属性文件,而希望载入磁盘文件,如(D:/config/test.properties)
使用file:///或file:完毕绝对路径的载入
例如以下:
<propertyname="location"value="file:///D:/config/test.properties"/>
Spring PropertyPlaceholderConfigure 载入配置文件