zoukankan      html  css  js  c++  java
  • 【JAVA】Spring 数据源配置整理

            在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()获取新连接是,只是简单的创建一个新的连接。

     
     
            
  • 相关阅读:
    Eclipse安装Hadoop插件
    (转)Ubuntu14.0.4中hadoop2.4.0伪分布模式配置
    Hadoop--DataNode无法启动
    启动与关闭hadoop
    hadoop中执行命令时发生错误
    strings命令
    Deriving data from ElasticSearch Engine
    elasticsearch data importing
    reading words in your computer and changing to female voice, linux festival text2wave saving wav files
    DDNS client on a Linux machine
  • 原文地址:https://www.cnblogs.com/liuyongcn/p/3567854.html
Copyright © 2011-2022 走看看