spring读取properties和其他配置文件的几种方式
2024-09-02 12:08:54
1、因为spring容器的一些机制,在读取配置文件进行数据库的配置等等是很有必要的,所以我们要考虑配置文件的的读取方式以及各个方式的实用性
2、配置文件的读取方式我这里介绍2种,目的是掌握这2种就可以很好的应用了
3、这里我的properies配置文件如下:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/m_model?useUnicode=true&characterEncoding=utf8
username=root
password=root
4、第一种读取方式:一种采用bean的配置方式,一种是标签的形式
1)bean的配置方式(推荐使用这种方式)
<bean id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<!-- 如果是单个文件可以按照注释的方式来配置 -->
<!-- <property name="location" value="classpath:conf/spring-config.properties"/> -->
<property name="locations">
<array>
<value>classpath:conf/spring-config.properties</value>
</array>
</property>
</bean> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</bean>
2)标签的配置方式
<context:property-placeholder location="classpath:conf/spring-config.properties"/> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</bean>
问题:这里我遇到了读取配置处错的问题:
会出现乱码的情况,然后我找了一些处理方式
(1)修改properties针对字符的配置
url=jdbc:mysql\://localhost\:3306\/m_model?useUnicode=true&characterEncoding=utf8
(2)加入读取配置时进行文件编码
<context:property-placeholder location="classpath:conf/spring-config.properties" file-encoding="UTF-8"/>
这两种方式我都试过了,目前还不知道什么原因导致的乱码问题。有大神可以指教一下
指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!指教!
5、是用util:properties便签来实现的,这种方式就是单纯的来读取配置文件
<util:properties id="config" location="classpath:conf/spring-config.properties"/>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="#{config.driver}"/>
<property name="url" value="#{config.url}"/>
<property name="username" value="#{config.username}"/>
<property name="password" value="#{config.password}"/>
</bean>
注意:这里是采用#{id.属性}来实现具体的读取,上面是直接$(属性来实现的)
6、这两种方式是针对于xml配置xml赋值的方式来实现,在使用过程中也可以使用通过标签的方式给具体的java代码赋值,便于管理
@Value("#{config.username}")
private String userName;
这种方式也可以用来装配具体的属性,便于合理管理相关配置
最新文章
- mongo virtual
- GitHub的用法:到GitHub上部署项目
- HDU 2274 Magic WisKey
- subline 快捷键
- asp.net 回发或回调参数无效的各种情况分析及解决办法
- Hbase中rowkey设计原则
- mysql 新建用户
- 安装配置Apache
- js数组与字符串的相互转换方法
- memcachedd基础
- mac osx 升级yosemite后java出错的解决
- (转)Android中截取当前屏幕图片
- 9个杀手级 JVM 编程语言
- [刷题]算法竞赛入门经典 3-7/UVa1368 3-8/UVa202 3-9/UVa10340
- SpringBoot的Profile文件
- vue 模板如何解析
- iOS10个实用小技巧(总有你不知道的和你会用到的)
- VC动态调用DLL
- bzoj 4930: 棋盘
- 关于jsp页面中时间显示问题
热门文章
- fastcgi+lighttpd+c语言 实现搜索输入提示
- python:常用模块二
- 模拟,找次品硬币,Counterfeit Dollar(POJ 1013)
- 【[HAOI2016]找相同字符】
- 【洛谷P3959】[NOIP2017] 宝藏
- 【洛谷P3807】(模板)卢卡斯定理
- Android学习笔记_59_清除sdcard缓存
- c的三个内存分配函数(malloc,realloc,calloc)
- how to create a custom form for sharepoint list
- spring入门(一) 根据xml实例化一个对象