(八)spring_使用外部属性文件
2016-07-23 10:29
423 查看
4000
为什么要使用外部属性文件
•在配置文件里配置 Bean 时, 有时需要在 Bean 的配置里混入系统部署的细节信息(例如: 文件路径, 数据源配置信息等). 而这些部署细节实际上需要和Bean 配置相分离
•Spring 提供了一个 PropertyPlaceholderConfigurer 的
BeanFactory后置处理器, 这个处理器允许用户将Bean 配置的部分内容外移到属性文件中. 可以在 Bean 配置文件里使用形式为${var} 的变量, PropertyPlaceholderConfigurer
从属性文件里加载属性, 并使用这些属性来替换变量.
•Spring 还允许在属性文件中使用${propName},以实现属性之间的相互引用。
这里以数据源为例,使用spring自带的数据源配置,首先在xml文件中配置
使用外部属性文件的步骤
如果使用了外部属性配置,那么需要在类路径下添加一个属性文件以".properties"结尾,那么我们命名为db.properties,其编写风格如下
新的配置文件中应该使用类似于EL表达式的方式在value属性中添加值
同时在applicationContext.xml文件中也要加载db.properties文件,所以需要在配置文件中添加这样一段代码
默认数据源的配置
c3p0的配置
所以在配置数据源的时候要注意这两种的配置区别
为什么要使用外部属性文件
•在配置文件里配置 Bean 时, 有时需要在 Bean 的配置里混入系统部署的细节信息(例如: 文件路径, 数据源配置信息等). 而这些部署细节实际上需要和Bean 配置相分离
•Spring 提供了一个 PropertyPlaceholderConfigurer 的
BeanFactory后置处理器, 这个处理器允许用户将Bean 配置的部分内容外移到属性文件中. 可以在 Bean 配置文件里使用形式为${var} 的变量, PropertyPlaceholderConfigurer
从属性文件里加载属性, 并使用这些属性来替换变量.
•Spring 还允许在属性文件中使用${propName},以实现属性之间的相互引用。
这里以数据源为例,使用spring自带的数据源配置,首先在xml文件中配置
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="username" value="root" ></property> <property name="password" value="123"></property> <property name="driverClassName" value="com.mysql.jdbc.Driver" ></property> <property name="url" value="jdbc:msyql:///test"></property> </bean>上面是不使用外部属性文件的配置
使用外部属性文件的步骤
如果使用了外部属性配置,那么需要在类路径下添加一个属性文件以".properties"结尾,那么我们命名为db.properties,其编写风格如下
jdbc.user=root jdbc.password=123 jdbc.driverClass=com.mysql.jdbc.Driver jdbc.jdbcUrl=jdbc:mysql:///testurl的配置中最好在test后面添加
?useUnicode=true&characterEncoding=UTF-8这样减少出现乱码问题
新的配置文件中应该使用类似于EL表达式的方式在value属性中添加值
同时在applicationContext.xml文件中也要加载db.properties文件,所以需要在配置文件中添加这样一段代码
<!-- 导入资源文件 --> <context:property-placeholder location="classpath:db.properties" />
默认数据源的配置
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="username" value="${jdbc.user}" ></property> <property name="password" value="${jdbc.password}"></property> <property name="driverClassName" value="${jdbc.driverClass}" ></property> <property name="url" value="${jdbc.jdbcUrl}"></property> </bean>这样一个以spring自带数据源的属性文件已经配置好了,但是使用C3P0的数据源配置有所不同,主要是定义的name属性中值不同。
c3p0的配置
<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>
所以在配置数据源的时候要注意这两种的配置区别
相关文章推荐
- Spring使用Cache
- Java之内部类的初级应用详解(附源码)
- java中的值传递和引用传递问题
- 深入理解java虚拟机(一):java内存区域(内存结构划分)
- Spring boot 整合CXF开发webService
- Java 中的 static 使用之静态方法
- JavaSE学习笔记之-----异常处理
- Struts2支持的结果类型
- Spring入门篇学习笔记(3)
- 疯狂java的基本总结
- protobuf安装配置和编译成java文件教程(for mac)
- Struts2框架运行机制
- Java集合排序总结
- Spring事务管理--(一)数据库事务隔离级别与mysql引擎基础讲解
- 反转部分单向链表
- JavaSE基础(五)
- javaWeb项目中,SSM配置,使用namespace的话,JSP页面跳转的找不到指定的action
- Spring Cache 介绍
- Java之内部类语法详解(附源码)
- spring+mybatis 多数据源切换