一 配置文件
<?xml version="1.0" encoding="GBK"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
<!-- PropertyOverrideConfigurer是一个容器后处理器,它会读取
属性文件信息,并用这些信息设置覆盖Spring配置文件的数据 -->
<bean class=
"org.springframework.beans.factory.config.PropertyOverrideConfigurer">
<property name="locations">
<list>
<value>dbconn.properties</value>
<!-- 如果有多个属性文件,依次在下面列出来 -->
</list>
</property>
</bean>
<!-- 定义数据源Bean,使用C3P0数据源实现,
配置该Bean时没有指定任何信息,但Properties文件里的
信息将会直接覆盖该Bean的属性值 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close"/>
</beans>
二 属性文件
dataSource.driverClass=com.mysql.jdbc.Driver
dataSource.jdbcUrl=jdbc:mysql://localhost:3306/spring
dataSource.user=root
dataSource.password=32147
三 测试类
package lee;
import javax.sql.DataSource;
import java.sql.*;
import org.springframework.context.*;
import org.springframework.context.support.*;
public class BeanTest
{
public static void main(String[] args)throws Exception
{
ApplicationContext ctx = new
ClassPathXmlApplicationContext("beans.xml");
DataSource ds = (DataSource)ctx.getBean("dataSource");
Connection conn = ds.getConnection();
PreparedStatement pstmt = conn.prepareStatement(
"insert into news_inf value(null , ? , ?)");
pstmt.setString(1 , "疯狂Java讲义3");
pstmt.setString(2 , "疯狂iOS讲义3");
pstmt.executeUpdate();
pstmt.close();
conn.close();
}
}
四 测试结果