分散配置:
首先编写一个服务类
package cn.csdn.service;
public class ConnServiceImpl {
private String driverClass;
private String url;
private String user;
private String password;
//set注入
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;
}
}
一般属性文件的装载配置
<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>root</value></property> <property name="password"><value>1234</value></property> </bean>
在应用上下文中,使用PropertyPlaceholderConfigurer从外部属性文件装载配置信息:jdbc.Properties文件
jdbc\:driverClass=com.mysql.jdbc.Driver
jdbc\:url=jdbc\:mysql\://localhost\:3306/db
jdbc\:user=root
jdbc\:password=1234
1、 应用上下文中从单个外部属性文件装载配置信息
<!--引入一个外部文件-->
<bean id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" scope="singleton"> <property name="location"> <value>cn/csdn/service/jdbc.properties</value> </property> </bean>
2、 应用上下文中多个外部属性文件装载配置信息
<!-- 引入多个外部文件 -->
<bean id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" scope="singleton"> <property name="locations"> <list> <value>cn/csdn/service/jdbc.properties</value> </list> </property> </bean>
这样就可以用占位符变量代替Bean配置文件中硬编码配置了,占位符变量采用${variable}的形式,代码如下:
<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>