spring框架——引用外部資源文件

1 案例一

Student.java

public class Student {
	private Integer sid;
	private String sname;

	public String getSname() {
		return sname;
	}
	
	public void setSname(String sname) {
		this.sname = sname;
	}

	public Integer getSid() {
		return sid;
	}

	public void setSid(Integer sid) {
		this.sid = sid;
	}

	@Override
	public String toString() {
		return "Student [sid=" + sid + ", sname=" + sname + "]";
	}
}

 student.properties

# K = V
student.sid=1001
student.sname=\u5F20\u4E09

其中,"\u5F20\u4E09" 是 "張三"  的 utf-8 編碼,輸入 "張三" 後自動轉換成 "\u5F20\u4E09"

  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.xsd">			
	<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="location" value="student.properties"></property>
	</bean>
	
	<bean id="student" class="com.test.Student">
		<property name="sid" value="${student.sid}"></property>
		<property name="sname" value="${student.sname}"></property>
	</bean>
</beans>

Test.java

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test {

	public static void main(String[] args) {
		ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
		Student s=ac.getBean("student",Student.class);
		System.out.println(s);
	}
}

運行結果:

Student [sid=1001, sname=張三]

 使用 context 命名空間

引入 context 命名空間如下:

  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"
	xmlns:context="http://www.springframework.org/schema/context"
	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-4.0.xsd">
	
	<context:property-placeholder location="student.properties" />
	
	<bean id="student" class="com.test.Student">
		<property name="sid" value="${student.sid}"></property>
		<property name="sname" value="${student.sname}"></property>
	</bean>
</beans>

2 案例二(數據庫連接)

在實際項目開發中,數據庫連接屬性通常放在外部 properties 文件中。

首先需要導入如下 jar 包:

 db.properties

# K = V
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test
jdbc.username=root
jdbc.password=0.

  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"
	xmlns:context="http://www.springframework.org/schema/context"
	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-4.0.xsd">		
	
	<context:property-placeholder location="db.properties" />
	
	<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
		<property name="driverClassName" value="${jdbc.driver}"></property>
		<property name="url" value="${jdbc.url}"></property>
		<property name="username" value="${jdbc.username}"></property>
		<property name="password" value="${jdbc.password}"></property>
	</bean>
</beans>

 Test.java

import java.sql.SQLException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.alibaba.druid.pool.DruidDataSource;

public class Test {

	public static void main(String[] args) throws SQLException {
		ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
		DruidDataSource ds=ac.getBean("dataSource",DruidDataSource.class);
		System.out.println(ds.getConnection());
	}
}

運行結果:

com.mysql.jdbc.JDBC4Connection@28ac3dc3

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章