分散配置
在应用上下文中,使用PropertyPlaceholderConfigurer从外部文件装载配置信息。其中location属性允许使用单个配置文件,可使用其locations属性设置配置文件列表。
案例:
Service包中ConnServiceImpl.java
public class ConnServiceImpl {
/*连接数据库**/
private String driverClass;
private String url;
private String user;
private String password;
public void setDriverClass(String driverClass) {
this.driverClass = driverClass;
}
public void setUrl(String url) {
this.url = url;
}
public void setUser(String user) {
this.user = user;
}
public void setPassword(String password) {
this.password = password;
}
}
Jdbc.properties文件
jdbc\:driverClass=com.mysql.jdbc.Driver
jdbc\:url=jdbc\:mysql\://localhost\:3306/db
jdbc\:user=dxl
jdbc\:password=root
applicationContext.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- 分散配置解析 引入一个外部文件即使用location属性
<bean id="propertyPlaceholderConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>cn/csdn/service/jdbc.properties</value>
</property>
</bean>
-->
<!-- 其中location属性允许使用单个配置文件,可使用其locations属性设置配置文件列表。classPath使用反斜杠
使用分散配置就可用占位符变量替代Bean配置文件中硬编码配置了,语法上,占位符变量采用${variable}形式
-->
<!-- 引入多个外部文件即使用locations属性 -->
<bean id="propertyPlaceholderConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>cn/csdn/service/jdbc.properties</value>
</property>
</bean>
<bean id="connServiceImpl" class="cn.csdn.service.ConnServiceImpl"
scope="singleton">
<property name="driverClass">
<!-- 在使用外部文件的名称方式${名称} -->
<value>${jdbc:driverClass}</value>
</property>
<property name="url">
<value>${jdbc:url}</value>
</property>
<property name="user">
<value>${jdbc:user}</value>
</property>
<property name="password">
<value>${jdbc:password}</value>
</property>
</bean>
<!-- 硬编码 的使用
<bean id="connServiceImpl" class="cn.csdn.service.ConnServiceImpl"
scope="singleton">
<property name="driverClass">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/db</value>
</property>
<property name="user">
<value>dxl</value>
</property>
<property name="password">
<value>root</value>
</property>
</bean>
-->
</beans>
此案例中主要介绍了分散配置的使用,首先介绍了硬编码的使用,然后是引入单个分散配置的使用,再就是引入多个分散配置的使用,并将三者做了具体的比较。读者主要观察xml文件中的代码,xml文件中的代码简单明了,易于理解。