在使用Spring做web项目的时候,通常会使用到数据库的连接信息

jdbcUrl
driverClass
username
password

那么应该如何使用这些属性呢?

如在Spring中使用数据库连接池(数据源)

你可能会这样写

<!-- 配置数据库连接池 ComboPooledDataSource -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!-- 基本的连接信息 -->
<property name="jdbcUrl" value="jdbc:mysql:///mybatis"/>
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<property name="user" value="root"/>
<property name="password" value="root"/>
<!-- 一些管理的配置 -->
<property name="initialPoolSize" value="3"></property>
<property name="minPoolSize" value="3"></property>
<property name="maxPoolSize" value="5"></property>
<property name="acquireIncrement" value="3"></property>
<property name="maxIdleTime" value="1800"></property>
</bean>

这是一种硬编码,如果数据库的连接环境变了,我们需要去beans.xml这个文件中进行修改,如果这个文件比较大,内容很多,找到这些信息就挺麻烦的。

怎么办呢,将这些信息提取出来,放在单独一个属性文件中

jdbc.properties,以后想改数据库连接环境的话改这个文件就可以了。

jdbcUrl        = jdbc:mysql:///mybatis
driverClass = com.mysql.jdbc.Driver
username = root
password = root

aaarticlea/png;base64,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" alt="" />

那么问题又来了,beans.xml文件需要读取jdbc.properties中的信息,我们需要告诉它去哪儿找jdbc.properties文件,怎么办呢?

这就涉及到本讲讨论的问题:Spring使用外部的配置文件

两种方式

1.常用,较简单

<!--加载外部的properties文件(方式一),用于解析${}形式的变量。-->
<!--如果需要加载多个properties文件,就写在一起,之间使用逗号隔开。-->
<context:property-placeholder location="classpath:jdbc.properties"/>

2.

<!-- 加载外部的properties文件(方式二) -->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<!--可以有多个-->
<value>classpath:jdbc.properties</value>
</list>
</property>
</bean>

有了此配置之后,数据源的配置就可以变为

<!-- 加载外部的properties文件(方式一),用于解析${}形式的变量。
如果需要加载多个properties文件,就写在一起,之间使用逗号隔开。 -->
<context:property-placeholder location="classpath:jdbc.properties"/> <!-- 配置数据库连接池 ComboPooledDataSource -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!-- 基本的连接信息 -->
<property name="jdbcUrl" value="${jdbcUrl}"/>
<property name="driverClass" value="${driverClass}"/>
<property name="user" value="${username}"/>
<property name="password" value="${password}"/>
<!-- 一些管理的配置 -->
<property name="initialPoolSize" value="3"></property>
<property name="minPoolSize" value="3"></property>
<property name="maxPoolSize" value="5"></property>
<property name="acquireIncrement" value="3"></property>
<property name="maxIdleTime" value="1800"></property>
</bean>

Spring使用外部的配置文件的更多相关文章

  1. 【Java Web开发学习】Spring加载外部properties配置文件

    [Java Web开发学习]Spring加载外部properties配置文件 转载:https://www.cnblogs.com/yangchongxing/p/9136505.html 1.声明属 ...

  2. Spring整合SSM的配置文件详解

    在整合三大框架SSM , 即 Spring 和 SpingMVC和Mybatis的时候,搭建项目最初需要先配置好配置文件. 有人在刚开始学习框架的时候会纠结项目搭建的顺序,因为频繁的报错提示是会很影响 ...

  3. Spring Boot 外部化配置(一)- Environment、ConfigFileApplicationListener

    目录 前言 1.起源 2.外部化配置的资源类型 3.外部化配置的核心 3.1 Environment 3.1.1.ConfigFileApplicationListener 3.1.2.关联 Spri ...

  4. Spring Boot 外部化配置(二) - @ConfigurationProperties 、@EnableConfigurationProperties

    目录 3.外部化配置的核心 3.2 @ConfigurationProperties 3.2.1 注册 Properties 配置类 3.2.2 绑定配置属性 3.1.3 ConfigurationP ...

  5. Mybatis+Springmvc+Spring整合常用的配置文件

    1.创建web项目 2.导入mabatis spring springnvc 需要的jar包 3.创建mybatis,spring,springmvc的配置文件 (1)web.xml配置文件 < ...

  6. Spring Boot -- 外部配置的属性使用

    Spring Boot允许使用propertities文件.yaml文件或者命令行参数作为外部配置. 命令行参数配置 Spring Boot可以基于jar包运行,打成jar包的程序可以直接通过下面的命 ...

  7. Spring Boot 的核心配置文件有哪几个?它们的区别是什么?

    Spring Boot 的核心配置文件是 application 和 bootstrap 配置文件.application 配置文件这个容易理解,主要用于 Spring Boot 项目的自动化配置.b ...

  8. maven Spring获取不到配置文件

    如题: 如果在maven项目中,Spring获取不到配置文件, 把配置文件放到.src/main/resource文件夹下即可 import org.springframework.context.s ...

  9. Spring中引入其他配置文件

    一.引入其他 模块XML 在Spring的配置文件,有时候为了分模块的更加清晰的进行相关实体类的配置. 比如现在有一个job-timer.xml的配置 <?xml version="1 ...

随机推荐

  1. ref 和out的用法以及区别

    在项目其实很少用ref和out,但是我们常用的工具resharep在帮我们重构的时候难免会给我们重构成带有ref或者是out的方法. 本人也是用的少所以难免忘记,留下简略笔记,以供后来自我参考: 为何 ...

  2. 与MySQL交互(felixge/node-mysql)

    目录 简介和安装 测试MySQL 认识一下Connection Options MYSQL CURD 插入 更新 查询 删除 Nodejs 调用带out参数的存储过程,并得到out参数返回值 结束数据 ...

  3. ASP.NET 运行机制续(完结)

    上一篇说到applicationInstance会执行一些列的事件.下面是我在msdn上找到有关asp.net程序生命周期相关的描述及图片 声明周期的起始 ASP.NET 应用程序的生命周期以浏览器向 ...

  4. Extjs ajax form 提交

    1.form 提交 form.form.submit({ url: "/HandlerExcelToDB/UploadFile.ashx", params: {}, success ...

  5. windows下SSH客户端远程访问Linux出现错误

  6. JPA学习---第七节:使用JPA加载_更新_删除对象

    1.添加数据,代码如下: @Test public void save(){ EntityManagerFactory factory = Persistence.createEntityManage ...

  7. [转载+原创]Emgu CV on C# (七) —— Emgu CV on 轮廓检测

    轮廓检测 对于查找轮廓我们一般要对图像Canny检测.但是对于很特殊的场合其实我们还可以直接对二值化的图像进行轮廓的提取. 关键函数 1. cvFindContours Retrieves conto ...

  8. Eclipse 环境安装和配置优化

    1.下载相应的eclipse版本.    官方下载地址:http://www.eclipse.org/downloads/    juno版本的64位下载地址:http://www.eclipse.o ...

  9. WinForm员工信息表

    先搞一个panel,然后里面放label.

  10. 2013 Asia Chengdu Regional Contest

    hdu 4786 Fibonacci Tree http://acm.hdu.edu.cn/showproblem.php?pid=4786 copyright@ts 算法源于ts,用最小生成树可以求 ...