摘要:?jiǎn)螖?shù)據(jù)源訪問(wèn)多數(shù)據(jù)庫(kù)的路由開(kāi)發(fā)在某些可以配置多站點(diǎn)的開(kāi)發(fā)框架中,如果每個(gè)站點(diǎn)多帶帶配置了多帶帶的數(shù)據(jù)庫(kù)。那么利用單一數(shù)據(jù)源根據(jù)不同的站點(diǎn)切換不同的數(shù)據(jù)庫(kù)比較方便。在這里展示了框架下的解決方案。在切換數(shù)據(jù)庫(kù)之前,需要先再進(jìn)行切換
單數(shù)據(jù)源訪問(wèn)多數(shù)據(jù)庫(kù)的路由開(kāi)發(fā)
在某些可以配置多站點(diǎn)的開(kāi)發(fā)框架中,如果每個(gè)站點(diǎn)多帶帶配置了多帶帶的數(shù)據(jù)庫(kù)。那么利用單一數(shù)據(jù)源根據(jù)不同的站點(diǎn)切換不同的數(shù)據(jù)庫(kù)比較方便。
在這里展示了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(); } }
用來(lái)判定當(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}
在使用過(guò)程中 通過(guò) SiteContextHolder.setSiteCode(CODE);來(lái)進(jìn)行數(shù)據(jù)源選擇。在切換數(shù)據(jù)庫(kù)之前,需要先SiteContextHolder.clearSiteCode();再進(jìn)行切換
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/64880.html
摘要:?jiǎn)螖?shù)據(jù)源訪問(wèn)多數(shù)據(jù)庫(kù)的路由開(kāi)發(fā)在某些可以配置多站點(diǎn)的開(kāi)發(fā)框架中,如果每個(gè)站點(diǎn)單獨(dú)配置了單獨(dú)的數(shù)據(jù)庫(kù)。那么利用單一數(shù)據(jù)源根據(jù)不同的站點(diǎn)切換不同的數(shù)據(jù)庫(kù)比較方便。在這里展示了框架下的解決方案。在切換數(shù)據(jù)庫(kù)之前,需要先再進(jìn)行切換 單數(shù)據(jù)源訪問(wèn)多數(shù)據(jù)庫(kù)的路由開(kāi)發(fā) 在某些可以配置多站點(diǎn)的開(kāi)發(fā)框架中,如果每個(gè)站點(diǎn)單獨(dú)配置了單獨(dú)的數(shù)據(jù)庫(kù)。那么利用單一數(shù)據(jù)源根據(jù)不同的站點(diǎn)切換不同的數(shù)據(jù)庫(kù)比較方便。 在...
摘要:老實(shí)說(shuō)我不是第一次想歪了而且很慢總是不能很快抓住要點(diǎn)當(dāng)別人用后端從做博客做論壇聯(lián)系完成的應(yīng)用的時(shí)候我跑去學(xué)單頁(yè)面應(yīng)用還很久掙扎在的思路當(dāng)中我想說(shuō)的是走大多數(shù)人走的路的確是可以減少浪費(fèi)的時(shí)間和錯(cuò)誤的走少數(shù)人在的路當(dāng)然也刺激的我最近才明白原來(lái)前 老實(shí)說(shuō)我不是第一次想歪了, 而且很慢, 總是不能很快抓住要點(diǎn). 當(dāng)別人用后端 MVC 從做博客做論壇, 聯(lián)系完成 MVC 的應(yīng)用的時(shí)候 我跑去學(xué)單...
摘要:原作者原鏈接基于多入口生成模板用于服務(wù)端渲染的方案及實(shí)戰(zhàn)法律聲明警告本作品遵循署名非商業(yè)性使用禁止演繹未本地化版本協(xié)議發(fā)布。這是什么背景現(xiàn)代化的前端項(xiàng)目中很多都使用了客戶端渲染的單頁(yè)面應(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è)面應(yīng)用。 原作者:@LinuxerPHL原博文地址: 基于 Webpack 4 多入口生成模板用于服務(wù)端渲染的方案及實(shí)戰(zhàn) 法律聲明 警告:本作品遵循 署名-非商業(yè)性使用-禁止演繹3.0 未本地化版本(...
閱讀 1740·2021-10-18 13:30
閱讀 2621·2021-10-09 10:02
閱讀 2969·2021-09-28 09:35
閱讀 2097·2019-08-26 13:39
閱讀 3529·2019-08-26 13:36
閱讀 1956·2019-08-26 11:46
閱讀 1139·2019-08-23 14:56
閱讀 1700·2019-08-23 10:38