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