12.笔记JAVA Spring框架学习————Bean使用外部属性文件
l 在配置文件里配置 Bean时, 有时需要在 Bean 的配置里混入系统部署的细节信息(例如: 文件路径, 数据源配置信息等). 而这些部署细节实际上需要和 Bean 配置相分离
l Spring 提供了一个 PropertyPlaceholderConfigurer 的 BeanFactory 后置处理器, 这个处理器允许用户将Bean 配置的部分内容外移到属性文件中. 可以在 Bean 配置文件里使用形式为 ${var} 的变量, PropertyPlaceholderConfigurer 从属性文件里加载属性, 并使用这些属性来替换变量.
l Spring 还允许在属性文件中使用 ${propName},以实现属性之间的相互引用。
首先将c3p0-0.9.5.2.jar,mysql-connector-java-5.1.39-bin.jar,mchange-commons-java-0.2.11.jar赋值到项目的lib文件中。
然后选中右键,build path中add to build path
驱动包下载地址见本节后面。
然后可以测试配置一个数据源为例,如下:
App.xml
先导入content模块。
然后在App.xml配置入下:
<!-- 导入外部的资源文件 -->
<context:property-placeholder location="classpath:db.properties"/>
<!-- 配置数据源 -->
<bean id="dataSource"class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user"value="${jdbc.user}"></property>
<property name="password"value="${jdbc.password}"></property>
<property name="driverClass"value="${jdbc.driverClass}"></property>
<property name="jdbcUrl"value="${jdbc.jdbcUrl}"></property>
</bean>
其中com.mchange.v2.c3p0.ComboPooledDataSource是来自c3p0中的类。
db.properties
右键项目中src, 新建一个db.properties文件,内容如下:
jdbc.user=root
jdbc.password=root
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.jdbcUrl=jdbc:mysql:///world
Main.java
Main.java内容如下:
com.mchange.v2.c3p0.impl.NewProxyConnection@49070868[wrapping: com.mysql.jdbc.JDBC4Connection@6385cb26]
这样后续如果需要修改数据库连接相关的属性,只需要修改db.properties即可。
C3p0
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。
下载链接:https://sourceforge.net/projects/c3p0/files/c3p0-bin/
Mysql驱动下载
http://dev.mysql.com/downloads/connector/j/