摘要:單數(shù)據(jù)源訪問多數(shù)據(jù)庫的路由開發(fā)在某些可以配置多站點(diǎn)的開發(fā)框架中,如果每個(gè)站點(diǎn)多帶帶配置了多帶帶的數(shù)據(jù)庫。那么利用單一數(shù)據(jù)源根據(jù)不同的站點(diǎn)切換不同的數(shù)據(jù)庫比較方便。在這里展示了框架下的解決方案。在切換數(shù)據(jù)庫之前,需要先再進(jìn)行切換
單數(shù)據(jù)源訪問多數(shù)據(jù)庫的路由開發(fā)
在某些可以配置多站點(diǎn)的開發(fā)框架中,如果每個(gè)站點(diǎn)多帶帶配置了多帶帶的數(shù)據(jù)庫。那么利用單一數(shù)據(jù)源根據(jù)不同的站點(diǎn)切換不同的數(shù)據(jù)庫比較方便。
在這里展示了spring框架下的解決方案。利用了spring的org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource
站點(diǎn)路由的datasource SiteRoutingDataSource
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; public class SiteRoutingDataSource extends AbstractRoutingDataSource { @Override protected Object determineCurrentLookupKey() { return SiteContextHolder.getSiteCode(); } }
用來判定當(dāng)前站點(diǎn)的工具類SiteContextHolder
import org.springframework.util.Assert; public class SiteContextHolder { private static final ThreadLocalcontextHolder = new ThreadLocal (); public static void setSiteCode(String siteCode) { Assert.notNull(siteCode, "siteCode cannot be null"); contextHolder.set(siteCode); } public static String getSiteCode() { return (String) contextHolder.get(); } public static void clearSiteCode() { contextHolder.remove(); } }
spring的xml配置:
${hgc.datasource.driverClassName} ${hgc.datasource.url} ${hgc.datasource.username} ${hgc.datasource.password} ${ahpu.datasource.driverClassName} ${ahpu.datasource.url} ${ahpu.datasource.username} ${ahpu.datasource.password}
在使用過程中 通過 SiteContextHolder.setSiteCode(CODE);來進(jìn)行數(shù)據(jù)源選擇。在切換數(shù)據(jù)庫之前,需要先SiteContextHolder.clearSiteCode();再進(jìn)行切換
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/17529.html
摘要:單數(shù)據(jù)源訪問多數(shù)據(jù)庫的路由開發(fā)在某些可以配置多站點(diǎn)的開發(fā)框架中,如果每個(gè)站點(diǎn)單獨(dú)配置了單獨(dú)的數(shù)據(jù)庫。那么利用單一數(shù)據(jù)源根據(jù)不同的站點(diǎn)切換不同的數(shù)據(jù)庫比較方便。在這里展示了框架下的解決方案。在切換數(shù)據(jù)庫之前,需要先再進(jìn)行切換 單數(shù)據(jù)源訪問多數(shù)據(jù)庫的路由開發(fā) 在某些可以配置多站點(diǎn)的開發(fā)框架中,如果每個(gè)站點(diǎn)單獨(dú)配置了單獨(dú)的數(shù)據(jù)庫。那么利用單一數(shù)據(jù)源根據(jù)不同的站點(diǎn)切換不同的數(shù)據(jù)庫比較方便。 在...
摘要:老實(shí)說我不是第一次想歪了而且很慢總是不能很快抓住要點(diǎn)當(dāng)別人用后端從做博客做論壇聯(lián)系完成的應(yīng)用的時(shí)候我跑去學(xué)單頁面應(yīng)用還很久掙扎在的思路當(dāng)中我想說的是走大多數(shù)人走的路的確是可以減少浪費(fèi)的時(shí)間和錯(cuò)誤的走少數(shù)人在的路當(dāng)然也刺激的我最近才明白原來前 老實(shí)說我不是第一次想歪了, 而且很慢, 總是不能很快抓住要點(diǎn). 當(dāng)別人用后端 MVC 從做博客做論壇, 聯(lián)系完成 MVC 的應(yīng)用的時(shí)候 我跑去學(xué)單...
摘要:原作者原鏈接基于多入口生成模板用于服務(wù)端渲染的方案及實(shí)戰(zhàn)法律聲明警告本作品遵循署名非商業(yè)性使用禁止演繹未本地化版本協(xié)議發(fā)布。這是什么背景現(xiàn)代化的前端項(xiàng)目中很多都使用了客戶端渲染的單頁面應(yīng)用。 原作者:@LinuxerPHL原鏈接:基于 Webpack 4 多入口生成模板用于服務(wù)端渲染的方案及實(shí)戰(zhàn) 法律聲明 警告:本作品遵循 署名-非商業(yè)性使用-禁止演繹3.0 未本地化版本(CC BY-...
摘要:原作者原博文地址基于多入口生成模板用于服務(wù)端渲染的方案及實(shí)戰(zhàn)法律聲明警告本作品遵循署名非商業(yè)性使用禁止演繹未本地化版本協(xié)議發(fā)布。這是什么背景現(xiàn)代化的前端項(xiàng)目中很多都使用了客戶端渲染的單頁面應(yīng)用。 原作者:@LinuxerPHL原博文地址: 基于 Webpack 4 多入口生成模板用于服務(wù)端渲染的方案及實(shí)戰(zhàn) 法律聲明 警告:本作品遵循 署名-非商業(yè)性使用-禁止演繹3.0 未本地化版本(...
閱讀 863·2021-10-11 10:59
閱讀 2799·2019-08-30 15:43
閱讀 2133·2019-08-30 11:08
閱讀 1654·2019-08-29 15:20
閱讀 1008·2019-08-29 13:53
閱讀 489·2019-08-26 13:24
閱讀 1637·2019-08-26 13:24
閱讀 2824·2019-08-26 12:08