1. 程式人生 > >spring資料來源配置四種方式

spring資料來源配置四種方式

配置Spring資料來源

不管採用何種持久化技術,都需要定義資料來源。Spring中提供了4種不同形式的資料來源配置方式:

spring自帶的資料來源(DriverManagerDataSource),DBCP資料來源,C3P0資料來源,JNDI資料來源。

一、spring自帶的資料來源:DriverManagerDataSource

二、DBCP資料來源

DBCP的配置依賴於2個jar包commons-dbcp.jar,commons-pool.jar。

BasicDataSource提供了close()方法關閉資料來源,所以必須設定destroy-method=”close” 屬性,以便Spring容器關閉時,資料來源能夠正常關閉。除以上必須的資料來源屬性外還有一些常用的屬性:

initialSize:連線池啟動時的初始值
maxActive:最大連線資料庫連線數,設定為0時,表示沒有限制; -->
maxIdle :最大空閒連線,當經過一個高峰期後,連線池可以慢慢將已經用不到的連線釋放一部分,一直減少到maxIdle
minIdle:最小空閒值,當空閒的連線數少於minIdle時,連線池就會預申請一些連線,以免洪峰來時來不及申請。
defaultAutoCommit:設定從資料來源中返回的連線是否採用自動提交機制,預設為true; 
defaultReadOnly:設定資料來源是否僅能執行只讀操作, 預設值為 false; 
maxWait:最大等待秒數,單位為毫秒, 超過時間會報出錯誤資訊; 
validationQuery:用於驗證連線是否成功的查詢SQL語句,SQL語句必須至少要返回一 行資料, 如可以簡單地設定為:“select count(*) from user”; 
removeAbandoned:是否自我中斷,預設是 false ; 
removeAbandonedTimeout:幾秒後資料連線會自動斷開,在removeAbandoned為true, 提供該值; 
logAbandoned:是否記錄中斷事件, 預設為 false;

三、C3P0資料來源

C3P0是一個開放原始碼的JDBC資料來源實現專案,C3P0依賴於jar包c3p0.jar。

ComboPooledDataSource和BasicDataSource一樣提供了一個用於關閉資料來源的close()方法,這樣我們就可以保證Spring容器關閉時資料來源能夠成功釋放。
C3P0擁有比DBCP更豐富的配置屬性,通過這些屬性,可以對資料來源進行各種控制:
acquireIncrement:當連線池中的連線用完時,C3P0一次性建立新連線的數目;
acquireRetryAttempts:定義從資料庫獲取新連線失敗後重復嘗試獲取次數,預設為30;
acquireRetryDelay:兩次連線中間隔時間,單位毫秒,預設為1000;
autoCommitOnClose:連線關閉時預設將所有未提交的操作回滾。預設為false;
checkoutTimeout:當連線池用完時客戶端呼叫getConnection()後等待獲取新連線的時 間,超時後將丟擲SQLException,如設為0則無限期等待。單位毫秒,預設為0;
idleConnectionTestPeriod:隔多少秒檢查所有連線池中的空閒連線,預設0表示不檢查;
initialPoolSize:初始化時建立的連線數,應在minPoolSize與maxPoolSize之間取值。預設為3;
maxIdleTime:最大空閒時間,超過空閒時間的連線將被丟棄。為0或負數則永不丟棄。預設為0;
maxPoolSize:連線池中保留的最大連線數。預設為15;
maxStatements:JDBC的標準引數,用以控制資料來源內載入的PreparedStatement數量。 預設為0;
maxStatementsPerConnection:連線池內單個連線所擁有的最大快取Statement數。預設為0;

四、JNDI資料來源

如果應用配置在高效能的應用伺服器(如WebLogic或Websphere,tomcat等)上,我們可能更希望使用應用伺服器本身提供的資料來源。應用伺服器的資料來源 使用JNDI開放呼叫者使用,Spring為此專門提供引用JNDI資源的JndiObjectFactoryBean類。

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> 
   <property name="jndiName" value="java:comp/env/jdbc/orclight"/> 
</bean> 

Spring 2.0為獲取J2EE資源提供了一個jee名稱空間,通過jee名稱空間,可以有效地簡化J2EE資源的引用。下面是使用jee名稱空間引用JNDI資料來源的配置:

學習筆記

相關推薦

spring資料來源配置方式

配置Spring資料來源 不管採用何種持久化技術,都需要定義資料來源。Spring中提供了4種不同形式的資料來源配置方式: spring自帶的資料來源(DriverManagerDataSource)

Spring配置資料來源方式(小結)

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSc

spring配置資料來源方式

一、spring預設的     DriverManagerDataSource <bean id="dataSource" class="org.springframework.jdbc.d

jdbc Template 介紹和 spring 連結資料來源方式

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSc

Spring 依賴注入方式

紙上得來終覺淺 1.構造器注入 AnimalDao: package com.roadArchitectWeb.dao; public interface AnimalDao { /*所有動物有一個說話的方法*/ public void say(); } CatDao

分析共享Spring配置資料來源方式(附相應jar包)

使用spring框架時,平常你都使用那種資料來源呢?本篇部落格將分享spring常用的四種配置資料來源方式。 以下使用Oracle10g版本作為例子。 第一種:使用spring自帶的DriverManagerDataSource 配置檔案如下: [html] view plaincopyp

spring配置資料來源的4方式以及Druid連線池

第一種:使用spring自帶的DriverManagerDataSource(無連線池的作用) <bean id="dataSource" class="org.springframework

Spring配置資料來源的三方式 (dbcp c3p0 jndi)

  [html]  view plain copy   1,使用org.springframework.jdbc.datasource.DriverManage

Spring配置資料來源的幾方式

無論使用什麼形式的Spring DAO支援類,都需要配置資料來源的引用。Spring提供了多個選項,用於在Spring程式裡配置資料庫,其中包括: 1,由JDBC驅動程式定義的資料來源。 2,由JNDI查詢的資料來源。 3,連線池的資料來源。 在Spring裡,我們可以像使用其他

Spring配置Druid資料來源的兩方式

1.在Spring的applicationContext.xml中配置Druid資料來源<bean id="DruidDataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init

spring 4 配置 datasource 方式

1、使用org.springframework.jdbc.datasource.DriverManagerDataSource  說明:DriverManagerDataSource建立連線是隻要有連線就新建一個connection,根本沒有連線池的作用。  <bean id="dataSource"

spring mvc配置datasource資料來源的三方式

spring配置datasource三種方式1、使用org.springframework.jdbc.datasource.DriverManagerDataSource 說明:DriverManagerDataSource建立連線是隻要有連線就新建一個connection,

Spring配置資料來源的三方式 (JNDI\C3PO)

1,使用org.springframework.jdbc.datasource.DriverManagerDataSource 說明:DriverManagerDataSource建立連線是隻要有連線就新建一個connection,根本沒有連線池的作用。  <bean id="dataSource" c

spring配置資料來源的3方式

1,使用org.springframework.jdbc.datasource.DriverManagerDataSource 說明:DriverManagerDataSource建立連線是隻要有連線就新建一個connection,根本沒有連線池的作用。  <bean id="dataSource" c

java讀取配置文件常用的方式

ng- wrap play 獲取值 position trac resource 基於 tom 配置文件 放置在src下面 obj.propertiesclassName=com.store.order.dao.impl.OrderDaoImpl方式一@Test p

Linux網卡配置模式以及防火墻設置的方式(CentOS 7.4)未完成

cmp netmask 如果 18C per 配置文件 匹配 .com cti 一、網卡配置的四種模式 1、直接修改配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTO代表地址的分配方式,有dhc

在Tomcat配置JNDI資料來源的三方式

在我過去工作的過程中,開發用伺服器一般都是Tomcat資料來源的配置往往都是在applicationContext.xml中配置一個dataSource的bean然後在部署時再修改JNDI配置我猜是因為Tomcat的配置需要改配置檔案不像JBoss,Weblogic等伺服器在

springMVC中配置servlet的url-pattern的方式(轉載 筆記)

https://www.cnblogs.com/canger/p/6084846.html 1.精確匹配 <url-pattern>/book/listBook</url-pattern> controller @Controller @RequestM

spring boot日誌配置方式

方法一: <?xml version="1.0" encoding="UTF-8" ?> <configuration> <appender name="consoleLog" class="ch.qos.logback.core.

spring在web容器啟動時執行初始化方法(方式

需求:在tomcat啟動時開啟一個定時任務,或初始化slor索引 想法:容器啟動時執行方法,最容易想到的就是servlet中可以配置load-on-startup,設定一個正整數也就可以隨容器一起啟動。 問題:上面的方法很好,但是由於定時任務需要去操作資料庫,而專案