spring读取properties和其他配置文件的几种方式
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;
这种方式也可以用来装配具体的属性,便于合理管理相关配置
spring读取properties和其他配置文件的几种方式的更多相关文章
- Spring读取配置文件的几种方式
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; imp ...
- Java 读取 .properties 配置文件的几种方式
Java 开发中,需要将一些易变的配置参数放置再 XML 配置文件或者 properties 配置文件中.然而 XML 配置文件需要通过 DOM 或 SAX 方式解析,而读取 properties 配 ...
- Spring Boot 入门系列(二十五)读取配置文件的几种方式详解!
在项目开发中经常会用到配置文件,之前介绍过Spring Boot 资源文件属性配置的方法,但是很多朋友反馈说介绍的不够详细全面.所以, 今天完整的分享Spring Boot读取配置文件的几种方式! S ...
- Java命令行启动jar包更改默认端口以及配置文件的几种方式
Java命令行启动jar包更改默认端口以及配置文件的几种方式 java -jar xxx.jar --server.port=8081 默认如果jar包没有启动文件,可以采用这种方式进行启动 java ...
- Spring的依赖注入(DI)三种方式
Spring依赖注入(DI)的三种方式,分别为: 1. 接口注入 2. Setter方法注入 3. 构造方法注入 下面介绍一下这三种依赖注入在Spring中是怎么样实现的. 首先我们需要以下几个 ...
- flask框架----设置配置文件的几种方式
设置配置文件的几种方式 ==========方式一:============ app.config['SESSION_COOKIE_NAME'] = 'session_lvning' #这种方式要把所 ...
- flask框架--设置配置文件的几种方式 与Flask两种配置路由的方式
设置配置文件的几种方式 ==========方式一:============ app.config['SESSION_COOKIE_NAME'] = 'session_lvning' #这种方式要把所 ...
- flask框架(二)——flask4剑客、flask配置文件的4种方式
之前学习的Django有必备三板斧:render,HttpResponse,redirect,JsonResponse 在flask也有,但是有些不同 一.Flask4剑客 1.直接返回字符串(ret ...
- Spring读取外部的资源配置文件—@PropertySource和@Value实现资源文件配置
通过@PropertySource可以指定读取的配置文件,通过@Value注解获取值: @PropertySource注解主要是让Spring的Environment接口读取属性配置文件用的,标识在@ ...
随机推荐
- 初学Pollard Rho算法
前言 \(Pollard\ Rho\)是一个著名的大数质因数分解算法,它的实现基于一个神奇的算法:\(MillerRabin\)素数测试(关于\(MillerRabin\),可以参考这篇博客:初学Mi ...
- java读取资源文件(Properties)
四步: java代码 //new一个读取配置文件 Properties properties=new Properties(); //获取文件路径 String path=request.getSer ...
- css块元素的 display 属性 inline-block 的应用
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> < ...
- Spring MVC之@RequestBody, @ResponseBody 详解(转)
简介: @RequestBody 作用: i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对 ...
- 对象的比较与排序(三):实现IComparable<T>和IComparer<T>泛型接口
来源:http://www.cnblogs.com/eagle1986/archive/2011/12/06/2278531.html 1:比较和排序的概念 比较:两个实体类之间按>,=,< ...
- SpringBoot非官方教程 | 第十五篇:Springboot整合RabbitMQ
转载请标明出处: 原文首发于:https://www.fangzhipeng.com/springboot/2017/07/11/springboot15-rabbitmq/ 本文出自方志朋的博客 这 ...
- iOS | Swift图片剪切圆角
我们在IOS开发中,时常需要将一些原本是方形的图片剪切成圆形或者边框是曲线的样子,表现得活泼生动一些. 注意:因为最近在尝试用Swiftl开发,所以这里的语言使用的就是Swift,OC的语法也是相近的 ...
- 车站分级 (2013noip普及组T4)(树形DP)
题目描述 一条单向的铁路线上,依次有编号为 1,2,…,n 的 n个火车站.每个火车站都有一个级别,最低为 1 级.现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车次停靠了火车站 x ...
- jsonp跨域请求360数据乱码解决办法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- MYSQL 版本5.7.24 sql_mode=only_full_group_by问题
具体出错提示: [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggr ...