在使用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,iVBORw0KGgoAAAANSUhEUgAAAIgAAABZCAIAAABquvuPAAAGmUlEQVR4nO2c7W/aRhzH+1fsL5gqbUu3oAWaMWoggUCeyANxaYaiaNlDRmFbmyiR1kgGaZpW1uVBw1oSKVrXdVhdSRXt5dyXfbs3e91/AvUv2Avj43znc4yx8Zn8rO8LsO/su/twd7Z/X+5aLJ4EcahrvpcAZCoAw6kADKcCMJzKCswZY6t8863v5R56OQFzcHAIbPwHQ++cmp7ZPzgANp7KCRi00VmiYq2pKpKYIPeXZVWp5YVEVChIitookwn4F6tqvICxPgRgfAbzYG+vuLbeQ62CCcbH0jrvMVuvN7deb771owBguADTPs+1z3OtvXFTMFGx1lTlkpCIxZNRodJQ1Zf6ZgTTPYSqjadvVgtU65BZ8P36ybtp1G4xerginvifZuMUnU2pLa+YVw0VNV9ViEvzCEYrOmqCkqziYLqtVpZVLD3OgwBjlsW433gGZjLDFTtzBuoZ1Dm7PcZYNSoj9oscaI95s11+s13+c/0zu2D0savbTGZDWbdixvQ0GJMsxH7iiqxk2BVfGrdmtcBKTFTNLGOloaqqe3cHww1GkcTermgTjHVRXcHjGRhsKOsUFx/K5IqWPl9VVJP0FalaQLen7CxEI1JDme0rxuLJkmx6TtZQRmUUa5Jh5uMVjNY0+mSoSFVjj5HRoe64HBVrTVVFOwkwdBa6Cawmf8srUjcU3XNqUzo5+VMZY/FkSdYvrf8IvAVzdnZWXFt3AMYt9fkbDNYNuldg8lWFNf4CGNfA9Fb/suzWLTyAcRMMyF0BGE4FYDgVgOFUAIZTgRmDU4EZg1OBGYNTuW3GECoN954xBxxm56pgbpsx+gajvR/sxBMBTK9gWGaMPsFoQZSmYh7K9BnGYF/tuGzG6BNMvqo0q4WSDGBcj/ljYEyjI/h+PE4T08YHpZYXEggMHUS4OsYMr8CwrRFWkU1t/6VgroIxw+0IJgLDskYwvAD5qoICfzZ6zPAbMwYJRpFEczDLt25LikrUUJUrroIJmDHDMzBMa4T5UIafhO4xV9CY4RUY1DqWpgvD5G8fzFUwZrgc8+9VFkMBDgZr7qsSZh40mKhQkBTzeydatLUDwHgovO+zqLCsHQAG5LMADKcCMJwKwHAqAMOpwIzBqcCMwanAjMGpXDZjOJDjhz6PAu/u+kk8AVNcW2etsmBxCMB4DqbdytnRIMEM4J1KwMAc72bvfpJut3LlYvp4NwtguABzvJtdmZ9EX1fmUzgbqlaKVO68psSjtihYS8SvtPCluUHCGOowhFiMQRGW+QGFwmLaIhByxbqEQQLz6mhWSEwQw5eQmHh1NMsAo/srtDfEciUWN4/FlmQzzwNunJB1A43RTUGGES3ND1rYjQihWpUwKGDardzxTnZlPmXoMTuWPUZMsD4bP1wSwY1RXcEivsuKrhNH7ZUwIGA0NuWiPsfsMOeYS6sd0119yBbDNEiQXlkmGDwjjWfIwdi8K7MDJirWmorcUAx2LBODBDbomZou8KGMMD/gd9LaUIaCocMAxsFzjB0wMWwxpm5rMvwVnWlZlol5npj8CfMDAkOu+oQm/0CDYb0r6//Jn093MlfyAYwXy5oMnwYdj9HGnEDYIfwVBMo4FYDhVACGUwEYTgVgOJUVmGPGViq7sLQgyH0w9fpPwMZ/MPTOdHb6Yb0ObDyVEzBoc7Ecg19rgZN3Yk7ArBbXVotrvR4CMJ6DGYwZwy8NCRjvzBgAxjkYlhnj319n1UczRC5GMPiStSxQcKUTF6kaDBJ6OzL/Uhtc04VzMCwzxuH9TL0ydX8nHdnA/iPpeC0LIoBvjHfZ/xN64EwXzsEgM8Z/J3NP9rL79zKZ9MRGIfXd1lT++/TY6fRYLYNhIH0RdpdMYC4Cwly2gVovIZCx/b7AtFu52ldTi7MT97ZT4QeJ0M/JG43J0ZNM5I+Fj5/fjpyQ0wzuiwAw3oKRtzObuxMj8mTo8dxYczHyLD/eEqMXd3K/iWNPFrutQ/sibK5lYQ2GtTRQ8E0XTsAQDysjPyRHn+bC5yuRi8LNv+9ELgrjOzPho9zo4zk8F+mLsLeWhTUYPQE5+Q+B6cIJGPwh//MvvnzvZOqD5wuhF0uhF0uhvxZyUjF8d3Lk6cyNRymLk3jhNrZeT2M41AOY8P70yLPp95UZ4XBp9ev1SWn5+mnind9TH27EvQbT03oaw6Ee4jHjs/FIIXEznwhtCtcfjr/9y0fv1m+NfWpFxS0wMXvraQyTIFDGqQAMpwIwnArAcCoAw6n+B2m9alg7X+IZAAAAAElFTkSuQmCC" 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. vs2010中安装ASP.NET AJAX Control Toolkit

    方法一: 第一步 下载Ajax Control Toolkit 进入网址http://ajaxcontroltoolkit.codeplex.com/ 即可下载 第二步 解压下载下来的Ajax Con ...

  2. poll实现

    struct pollfd {    int fd;     //当前描述符    short events;     //进程关心的该描述符的事件    short revents;    //返回 ...

  3. 为iOS7重新设计你的App

    在 WWDC 上看到 iOS 7 系统的发布后,我们重新审视了自己的应用 Grocery List,并且意识到:iOS 7 对于开发者来说是一个全新的开始,就像七年前 iPhone 首次发布一样.现在 ...

  4. 命令行插入含有中文的sql文件,报错ERROR 1366 (HY000): Incorrect stringvalue:

    --以下是插入语句: insert into sms_inbox values('123456','123456', 'cd', sysdate(), '今天天 气很好', 1, sysdate(), ...

  5. 微信小程序、应用号、订阅号、服务号、企业号小总结

    微信小程序是现在微信推出的一个新的项目,但是很多人都不是很清楚微信小程序是怎么一回事,不明白到底怎样分别微信小程序和别的公众号.订阅号等的区别,那么让小编来给你介绍一下. 微信小程序目前是内侧阶段,是 ...

  6. silverlight 控件自定义样式 实现方法

    1:在app.xaml中加入需实现的样式,如: <Application.Resources> <Style x:Key="NodeStyle" TargetTy ...

  7. 【BZOJ】【2940】【POI2000】条纹

    博弈论 一开始想成S-Nim了……后来发现不一样= =石子是一定得取的,但是这个铺条纹就像Crosses and Crosses一样,是可以铺到中间,左右留下空隙但是对手无处可放的…… 所以就是两道题 ...

  8. 【BZOJ】【2818】Gcd

    欧拉函数/莫比乌斯函数 嗯……跟2190很像的一道题,在上道题的基础上我们很容易就想到先求出gcd(x,y)==1的组,然后再让x*=prime[i],y*=prime[i]这样它们的最大公约数就是p ...

  9. C#textbox右击弹出菜单

    给窗口体拖一个contextMenuTrip 控件,也就是右键菜单控件,这时你就不要给这个控件写内容了, 选中textBox 然后点属性窗口,把它的contextMenuTrip 属性选中你刚才托的那 ...

  10. QualityCenter10+Oracle10.2.1.0.1+Win2003SP2企业版安装步骤

    HpQualityCenter10+Oracle10.2.1.0.1+Win2003SP2企业版安装步骤: 1.点击setup.exe,等待,知道出现以下界面,然后按“下一步” 2.出现如下界面,接受 ...