天天看点

spring framework入门(5):context:property-placeholder 和util:properties1.pom文件省略2.代码结构3.代码4.配置文件5.运行

试验代码: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.代码结构

spring framework入门(5):context:property-placeholder 和util:properties1.pom文件省略2.代码结构3.代码4.配置文件5.运行

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
           

5.运行

spring framework入门(5):context:property-placeholder 和util:properties1.pom文件省略2.代码结构3.代码4.配置文件5.运行
spring framework入门(5):context:property-placeholder 和util:properties1.pom文件省略2.代码结构3.代码4.配置文件5.运行