在使用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. sqlalchemy - day1

    一.Create engine Database url规则: dialect+driver://username:password@host:port/database echo: True表示cm ...

  2. Linq to Entities

    首先要添加一个ADO.NET实体数据模型 添加一个Entities 对象,其用法和linqtosql类似例如: StudentInfoEntities2 entity = new StudentInf ...

  3. 从new Function创建函数联想到MVC模式

    我们知道任何一个自定义函数都是Function构造器的实例,所以我们可以通过new Function的方式来创建函数,使用语法很简单, new Function(形参1, 形参2, ..., 形参N, ...

  4. Sqlite: unable to open database file

    A database connect, there updated both queries (different statement, and regardless of order), after ...

  5. [ERROR] Failed to open log

    版本:5.5.14 性能测试部-测试环境数据库 1.在性能测试过程中大量的日志,测试人员直接使用 rm -rf 删除所有 2.重启数据库时,出现报错,导致数据库无法启动,查看报错日志,报错信息如下: ...

  6. Linux环境下GIT初次使用

    Git是一个功能强大的分布式版本控制系统,最初用来作Linux内核代码管理的. 第一次接触到github是关于一个报道:在2013年1月15日晚间,全球最大的社交编程及代码托管网站GitHub突然疑似 ...

  7. ios项目绕过证书访问https程序

    如果是单个的webview或者request请求,在请求的文件h中直接实现NSURLConnectionDelegate,并在m中添加下列实现下列两个方法: - (BOOL)connection:(N ...

  8. C#的winform小合集

    C#的winform小合集 博主很懒,又想记录一下自己的所做所为,仅此而已,供自己日后所看.这个是博主自主学习C#所写的一些小程序,有好玩的,也有一些无聊闲得蛋疼所作的. 内容介绍 C#入门窗口输出h ...

  9. 51nod 计算N!的位数

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1130 对于这类问题:斯特林近似公式:     百度百科的证明:http: ...

  10. [搜片神器]使用C#实现DHT磁力搜索的BT种子后端管理程序+数据库设计(开源)

    谢谢园子朋友的支持,已经找到个VPS进行测试,国外的服务器:http://www.sosobta.com   大家可以给提点意见... 出售商业网站代码,万元起,非诚勿扰,谢谢. 联系h31h31 a ...