在Spring中,不但可以通过JNDI获取应用服务器的数据源,也可以直接在Spring容器中配置数据源,此外,还可以通过代码的方式创建一个数据源,以便进行无依赖的单元测试。
配置数据源
        Spring在第三方依赖包中包含了两个数据源的实现类包:其一是Apache的DBCP;其二是C3P0。可以在Spring配置文件中利用这两者中的任何一个配置数据源。
  • DBCP数据源
    • DBCP类包位于commons-dbcp.jar,DBCP一个依赖对象池机制的数据库连接池,所以在类路径下还必须包括commons-pool.jar。在该数据源中BasicDataSources提供了close方法关闭数据源,所以必须设定destroy-method="close"属性,以便Spring容器关闭时,数据源能够正常关闭。
    • DBCP的XML文件配置如下:
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">  
<property name="driverClassName" value="${db.driverClassName}"/>  
<property name="url" value="${db.url}"/>  
<property name="username" value="${db.username}"/>  
<property name="password" value="${db.password}"/>
<property name="testOnBorrow" value=true/>  
<property name="validationQuery" value="SELECT 1"/>
<!--initialSize: 初始化连接-->  

<property name="initialSize" value="5"/>

<!--maxIdle: 最大空闲连接--> 
<property name="maxIdle" value="10"/> 
<!--minIdle: 最小空闲连接-->  
<property name="minIdle" value="5"/>  
<!--maxActive: 最大连接数量-->  
<property name="maxActive" value="15"/>  
<!--removeAbandoned: 是否自动回收超时连接-->  
<property name="removeAbandoned" value="true"/>  
<!--removeAbandonedTimeout: 超时时间(以秒数为单位)-->  
<property name="removeAbandonedTimeout" value="180"/>  
<!--maxWait: 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒-->  
<property name="maxWait" value="3000"/>  
    </bean> 
  • C3P0数据源
    • C3P0是一个开源代码的JDBC数据源实现项目,它在lib目录中与Hibernate一起发布,实现JDBC3和JDBC2扩展规范说明的Connection和Statement池。C3P0类包位于c3p0-0.9.0.4.jar中。ComboPooledDataSource数据源和BasicDataSource一样提供了一个用于关闭数据源的close()方法,这样我们就可以保证Spring容器关闭时数据源能够成功释放。
    • C3P0数据源配置如下:
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">  
  <property name="driverClass">com.mysql.jdbc.Driver</property>
  <property name="jdbcUrl">jdbc:mysql:///day14</property>
  <property name="user">root</property>
  <property name="password">sorry</property>
  <property name="acquireIncrement">10</property>
  <property name="initialPoolSize">30</property>
  <property name="minPoolSize">5</property>
  <property name="maxPoolSize">40</property>
  <property name="maxStatements">1000</property>
  <property name="maxStatementsPerConnection">100</property>
</bean>    
 
获取JNDI数据源
        Spring专门提供引用JNDI资源的JndiObjectFactoryBean类,配置有如下两种方式:
        第一:使用JndiObjectFactoryBean定义
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
  <property name="jndiName" value="java:/Sms3_CustDB"/>
</bean>
        第二:使用jee命名空间
        <jee:jndi-lookup id="dataSource" jndi-name=" java:/Sms3_CustDB "/>
 
Spring的数据源实现类

Spring本身提供了一个简单的数据源实现类DriverManagerDataSource,它实现了DataSource接口,但是它并没有提供池化连接的机制,每次调用getConnection()获取新连接是,只是简单的创建一个新的连接。

 
 
        

【JAVA】Spring 数据源配置整理的更多相关文章

  1. Spring 数据源配置二:多数据源

    通过上一节  Spring 数据源配置一: 单一数据源  我们了解单一数据源的配置, 这里我们继续多个数据源的配置 如下(applicationContent.xml 内容) 一:  Spring   ...

  2. ODBC 常见数据源配置整理

    目录 1. 简介 1.1 ODBC和JDBC 1.2 ODBC配置工具 1.3 ODBC 数据源连接配置 2. MySQL 数据源配置 2.1 配置步骤 2.2 链接参数配置 3. SQLServer ...

  3. Spring 数据源配置一:单一数据源

    最近遇到一个项目,需要访问都多个数据源,并且数据库是不同厂商(mysql,  sqlserver). 所以对此做了一些研究,这里咱们采用渐进的方式来展开,先谈谈单一数据源配置.(稍后有时间会陆续补充其 ...

  4. Spring 数据源配置三:多数据源

    在上一节中,我们讲述了多数据的情况: 1. 数据源不同(数据库厂商不同, 业务范围不同, 业务数据不同) 2. SQL mapper 文件不同, 3. mybatis + 数据方言不同 即最为简单的多 ...

  5. java spring boot- freemarker 配置 yml使用流程

    1.pom.xml  加入maven 依赖 <!-- 引入 freemarker 模板依赖 --><dependency> <groupId>org.springf ...

  6. spring数据源配置

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-// ...

  7. Java——Spring依赖配置详解

    <properties> <junit.version>4.12</junit.version> <spring.version>4.3.9.RELEA ...

  8. 复习Spring第三课--数据源配置的多种方式

    spring数据源配置可以说分为:spring容器自带连接池.项目中创建连接池.服务器创建连接池三种 一.spring容器自带连接池   Spring本身也提供了一个简单的数据源实现类DriverMa ...

  9. JAVA spring hibernate 多数据源配置记录

    数据源配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http:// ...

随机推荐

  1. 使用python递归子目录处理日志文件

    重要说明: (1)python使用4个空格进行层次缩进的(不是tab),在eclipse里面可以直接使用tab缩进,是因为eclipse会实时地将tab转成4个空格 (2)在eclipse中安装pyD ...

  2. eclipse基础及开发插件

    Eclipse:http://www.eclipse.org/downloads/ Compare Package:http://www.eclipse.org/downloads/packages/ ...

  3. C# SMTP邮件发送 分类: C# 2014-07-13 19:10 334人阅读 评论(1) 收藏

    邮件发送在网站应用程序中经常会用到,包括您现在看到的博客,在添加评论后,系统会自动发送邮件通知到我邮箱的,把系统发送邮件的功能整理了下,做了一个客户端Demo,希望对有需要的童鞋有所帮助: 核心代码: ...

  4. android 入门- 词汇

    final Resources.Theme theme = context.getTheme(); TypedArray a = theme.obtainStyledAttributes();获得自定 ...

  5. STUN和TURN技术浅析

    转自:http://blog.csdn.net/yu_xiang/article/details/9227023 在现实Internet网络环境中,大多数计算机主机都位于防火墙或NAT之后,只有少部分 ...

  6. ASSM 的三级位图结构

    自动段空间管理(ASSM),它首次出现在Oracle920里(在920以前,段空间的管理方式叫做MSSM,它是由连接列表freelist来完成的,因为freelist存在串行的问题,因此容易引起段头的 ...

  7. Eclipse·如何关联Git库文件和添加JUint库

    Eclipse创建工程并关联到文件(SVN或Git管理的代码文件) 新建java工程,用于存放工程的一些信息,默认存放地址. 工程相关的信息是不需要提交到(SVN或Git)版本库的,所以工程存放到本地 ...

  8. 在Salesforce中对某一个Object添加 Validation Rule

    在Salesforce中可以对某一个Object添加相应的 Validation Rule 来进行一个全局的条件判断,比如满足什么样的条件的修改允许提交,不满足的要提示相应的错误信息. 要创建一个Va ...

  9. loj 1406(状态压缩)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1406 思路:首先可以预处理出在每个顶点的状态的合法状态vis[u][state], 然 ...

  10. android加载大量图片内存溢出的三种方法

    android加载大量图片内存溢出的三种解决办法 方法一:  在从网络或本地加载图片的时候,只加载缩略图. /** * 按照路径加载图片 * @param path 图片资源的存放路径 * @para ...