Spring對資料庫的鏈結配置 事務的配置

2021-08-17 20:19:45 字數 2460 閱讀 4634

第一點 要配置資料來源  資料來源包括: 資料來源連線資訊,資料來源的類支援。

配置方式有兩種 :

1 直接在xml中配置:

2、在類檔案中實現datasource的支援類,並設定資料來源鏈結資訊。

package common.jdbc.datasource;

import org.apache.commons.lang.stringutils;

import org.springframework.beans.factory.factorybean;

import org.springframework.beans.factory.initializingbean;

import play.play;

import com.jolbox.bonecp.bonecpdatasource;

public class bonecpdatasourcefactorybean implements factorybean, initializingbean

@override

public class<?> getobjecttype()

@override

public boolean issingleton()

@override

public void afterpropertiesset() throws exception

public int getintvalue(string config, int de****tvalue)catch (exception e)

} return de****tvalue;

}}

@repository("testdao")

public class testdao extends jdbcdaosupport

});return list;

}

如果使用第三方的持久層中介軟體,比如mybatis ,則將datasource制定給sqlsessionfactory。

第二點  spring事物的配置,從啟動的順序上來講,

首先:開啟事務,需要指定事務管理者

事務管理者 需要制定事務管理的類 以及 作用資料來源

此外 可以對事務管理者 提供事務的傳播屬性配置。

定義事務傳播屬性 可以通過註解的方式  也可以通過配置檔案

———————————————————分割線  動態配置資料來源及選擇 原理——————————————————

核心是import org.springframework.jdbc.datasource.lookup.abstractroutingdatasource;

這個類實現了 對資料來源的動態管理  不在詳細解讀原始碼,只說實現原理。

import org.springframework.jdbc.datasource.lookup.abstractroutingdatasource;

public class dynamicdatasource extends abstractroutingdatasource

}

為了執行緒的安全  我們需要乙個執行緒安全的map來訪問當前方法需要的 lookupkey。

在需要切換資料來源的時候 將需要的lookupkey存入map中。

如果需要用到事務,那麼資料來源的切換一定要放在事務開始之前。

這裡提供一種解決方案:

1在需要切換資料來源的方法上使用註解方式配置資料來源的lookupkey資訊。

2配置aop 通過註解切換資料來源。

2保證資料來源的aop優先順序,保證資料來源的切換在事務開啟之前。

具體配置如下:

註解資料來源

public class datasourceaspect implements methodbeforeadvice,afterreturningadvice 

@override

public void before(method method, object args, object target)

throws throwable

else

}}

測試dao

@datasource(name=datasource.testdatasource1)

public listfindtest1()

參考文件 動態資料來源實現:

spring 常用的資料庫鏈結配置

資料庫鏈結配置 hsqldb jdbc.driverclassname org.hsqldb.jdbcdriver jdbc.url jdbc hsqldb hsql localhost 9001 資料庫名稱 jdbc.username 使用者名稱 jdbc.password 密碼 mysql jd...

Spring 對資料庫操作

1.spring的資料庫訪問方式 提供了對jdbc,mybatis,hibernate等的支援。主要通過dao提供了如下的支援 a.提供了與平台無關的資料庫訪問異常體系 b.提供了資料訪問的模板,比如 jbdctemplate,jdbctemplate,hibernatetemplate c.提供了...

在Spring框架下對資料庫連線的配置資訊加密

現在有乙個專案,客戶要求在配置檔案中的資料庫連線資訊是密文的,當時還以為很是個簡單的事。但是這個由於專案使用到了spring框架,而對資料庫的連線資訊是在spring啟動時就裝入記憶體的,因此要在載入後對檔案進行解密,幾乎不太可能。後面分析了spring 的原始碼,發現spring屬性檔案的載入都是...