试验代码:https://download.csdn.net/download/u010476739/11420789
试验条件:
maven
spring framwork 4.2.4.RELEASE
试验目的:
试验<context:property-placeholder />和<util:properties />的使用方法
说明:
1. <context:property-placeholder />是将外部的properties文件加载到spring的上下文,然后可以使用“${}”去使用,可以应用在注解上或xml文件中
2. <util:properties />是声明了一个java.util.Properties类型的bean(同类型的还有list、map等),然后可以在装配的时候引用过去(以#{bean名称.key})。需要注意:它也可以像<context:property-placeholder />一样从外部加载
1.pom文件省略
2.代码结构
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL9smeNNTW65EMBRVT3V1MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL5IDOxMTOwYTMzIzNwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
3.代码
DataSource.java
package springProperty;
public class DataSource {
private String driver;
private String url;
private String user;
private String pwd;
public String getDriver() {
return driver;
}
public void setDriver(String driver) {
this.driver = driver;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
@Override
public String toString() {
return "DataSource [driver=" + driver + ", url=" + url + ", user=" + user + ", pwd=" + pwd + "]";
}
}
JDBCUtil.java
package springProperty;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class JDBCUtil {
@Value("${jdbc_driverClass}")
private String driver;
@Value("${jdbc_url}")
private String url;
@Value("${jdbc_userName}")
private String user;
@Value("${jdbc_userPassword}")
private String pwd;
@Override
public String toString() {
return "driver:" + this.driver + "\r\nurl:" + this.url + "\r\nuser:" + this.user + "\r\npwd:" + this.pwd;
}
}
App.java
package springProperty;
import java.util.Properties;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
JDBCUtil util = context.getBean(JDBCUtil.class);
System.out.println(util);
DataSource ds = context.getBean("dataSource", DataSource.class);
System.out.println(ds);
DataSource ds2 = context.getBean("dataSource2", DataSource.class);
System.out.println(ds2);
DataSource ds3 = context.getBean("dataSource3", DataSource.class);
System.out.println(ds3);
}
}
4.配置文件
applicationContext.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.2.xsd">
<context:component-scan
base-package="springProperty" />
<!-- 用$表达式方式:context:property-placeholder -->
<context:property-placeholder
location="classpath:mysql.properties" />
<bean id="dataSource" class="springProperty.DataSource">
<property name="driver" value="${jdbc_driverClass}"></property>
<property name="url" value="${jdbc_url}"></property>
<property name="user" value="${jdbc_userName}"></property>
<property name="pwd" value="${jdbc_userPassword}"></property>
</bean>
<bean id="dataSource2" class="springProperty.DataSource">
<property name="driver" value="#{util.driver}"></property>
<property name="url" value="#{util.url}"></property>
<property name="user" value="#{util.user}"></property>
<property name="pwd" value="#{util.pwd}"></property>
</bean>
<bean id="dataSource3" class="springProperty.DataSource">
<property name="driver" value="#{util2.driver}"></property>
<property name="url" value="#{util2.url}"></property>
<property name="user" value="#{util2.user}"></property>
<property name="pwd" value="#{util2.pwd}"></property>
</bean>
<!-- 用#表达式方式:util:properties -->
<util:properties id="util"
location="classpath:utilprops.properties" />
<util:properties id="util2">
<prop key="driver">util2-driver</prop>
<prop key="url">util2-url</prop>
<prop key="user">util2-user</prop>
<prop key="pwd">util2-pwd</prop>
</util:properties>
</beans>
mysql.properties
jdbc_driverClass=com.mysql.jdbc.Driver
jdbc_url=jdbc:mysql://localhost:3306/tmpdb
jdbc_userName=root
jdbc_userPassword=root
utilprops.properties
driver=utildriver
url=utilurl
user=utiluser
pwd=utilpwd