欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot多租戶設(shè)計(jì)過程圖解

 更新時(shí)間:2019年12月31日 10:45:10   作者:Oven5217  
這篇文章主要介紹了springboot多租戶設(shè)計(jì)過程圖解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了springboot多租戶設(shè)計(jì)過程圖解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

1. 概述

根據(jù)不同用戶的請求,選擇不同的數(shù)據(jù)源,不同的數(shù)據(jù)源可以是Oracle、MySQL或者其它。用到的技術(shù)棧,沒有什么復(fù)雜的技術(shù),可以看到,依賴也就加了幾個(gè)而已,如下:

2. 先睹為快

如下圖,header中tenant為zhangsan,則使用db_oauth為數(shù)據(jù)源,tenant為lisi,則使用db_test為數(shù)據(jù)源,tenant為wangwu,則使用db_jxc為數(shù)據(jù)源。不同的數(shù)據(jù)源可以是不同的數(shù)據(jù)庫類型,這里為了演示統(tǒng)一使用了MySQL,用不同的庫作為不同的數(shù)據(jù)源。

3. 實(shí)現(xiàn)原理3.1 先看一下入口這個(gè)controller,一個(gè)很正常的controller.

3.2 跟進(jìn)service層,看一下這個(gè)bookService,一個(gè)正常的不能再正常的service.

3.3 跟進(jìn)dao層,看一下這個(gè)bookDao

一個(gè)正常…似乎有些不正常的dao,主要是這里的這個(gè)jdbcTemplate,不是像以前一樣直接通過@Resource注入進(jìn)來的,而是通過父類的getJdbcTemplate方法獲取的,下一步進(jìn)到這個(gè)方法里邊看個(gè)究竟。

3.4 動(dòng)態(tài)獲取jdbcTemplate

這里注入了一個(gè)datasourceProvider,首先從request的header中獲取租戶的標(biāo)志,然后通過datasourceProvider的selectDataSource方法獲取數(shù)據(jù)源。

3.5 繼續(xù)跟進(jìn)

這里通過一個(gè)map存儲(chǔ)著所有的數(shù)據(jù)源,如果沒有初始化,就將所有的數(shù)據(jù)源初始化完畢,然后放到這個(gè)map中,在使用的時(shí)候,通過租戶標(biāo)志從map中獲取。也可以改成懶加載的模式,即下邊注釋的代碼,在需要的時(shí)候才進(jìn)行數(shù)據(jù)源的初始化,然后放到map中,供以后使用。

3.6 Keep Going~

進(jìn)去看一下這個(gè)map里邊put的是什么東西。首先從租戶數(shù)據(jù)源配置表中獲取所有的配置,然后對(duì)這些數(shù)據(jù)源進(jìn)行一個(gè)個(gè)的初始化。getDataSouce方法中,也對(duì)數(shù)據(jù)源進(jìn)行了一個(gè)map的映射,先放到一個(gè)容器中,如果初始化過了,直接拿出來使用即可。

3.7 這里才是真正的數(shù)據(jù)源初始化的地方,這里使用了druid,傳統(tǒng)的生成方式而已,沒有什么特別的地方。

3.8 需要注意的是,在系統(tǒng)啟動(dòng)的時(shí)候,需要指定一個(gè)默認(rèn)的數(shù)據(jù)源,這個(gè)數(shù)據(jù)源中存放著租戶的配置信息。

4. 附贈(zèng)一張租戶表

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Jdbctemplate多數(shù)據(jù)源配置方法詳解

    Jdbctemplate多數(shù)據(jù)源配置方法詳解

    這篇文章主要介紹了Jdbctemplate多數(shù)據(jù)源配置方法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Java計(jì)時(shí)器工具StopWatch的具體使用

    Java計(jì)時(shí)器工具StopWatch的具體使用

    計(jì)時(shí)器在很多地方都可以用到,本文主要介紹了Java計(jì)時(shí)器工具StopWatch的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • 一文搞懂Java?ScheduledExecutorService的使用

    一文搞懂Java?ScheduledExecutorService的使用

    JUC包(java.util.concurrent)中提供了對(duì)定時(shí)任務(wù)的支持,即ScheduledExecutorService接口。本文主要對(duì)ScheduledExecutorService的使用進(jìn)行簡單的介紹,需要的可以參考一下
    2022-11-11
  • java隨機(jī)驗(yàn)證碼生成實(shí)現(xiàn)實(shí)例代碼

    java隨機(jī)驗(yàn)證碼生成實(shí)現(xiàn)實(shí)例代碼

    這篇文章主要介紹了java隨機(jī)驗(yàn)證碼生成實(shí)現(xiàn)實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Flutter實(shí)現(xiàn)容器組件、圖片組件 的代碼

    Flutter實(shí)現(xiàn)容器組件、圖片組件 的代碼

    容器組件(Container)可以理解為在Android中的RelativeLayout或LinearLayout等,在其中你可以放置你想布局的元素控件,從而形成最終你想要的頁面布局。這篇文章主要介紹了Flutter實(shí)現(xiàn)容器組件、圖片組件 的代碼,需要的朋友可以參考下
    2019-07-07
  • Java回調(diào)機(jī)制解讀

    Java回調(diào)機(jī)制解讀

    本文主要介紹了Java回調(diào)機(jī)制的相關(guān)知識(shí),具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-02-02
  • Java必須掌握的 4 大基礎(chǔ)

    Java必須掌握的 4 大基礎(chǔ)

    我們一直在學(xué)習(xí)Java,但Java中總有一些概念含混不清,不論是對(duì)初級(jí)還是高級(jí)程序員都是如此。所以,這篇文章的目的就是弄清楚這些概念,需要的小伙伴可以參考以下喲
    2021-09-09
  • Springboot mybatis plus druid多數(shù)據(jù)源解決方案 dynamic-datasource的使用詳解

    Springboot mybatis plus druid多數(shù)據(jù)源解決方案 dynamic-datasource的使用詳

    這篇文章主要介紹了Springboot mybatis plus druid多數(shù)據(jù)源解決方案 dynamic-datasource的使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • SpringBoot大學(xué)心理服務(wù)系統(tǒng)實(shí)現(xiàn)流程分步講解

    SpringBoot大學(xué)心理服務(wù)系統(tǒng)實(shí)現(xiàn)流程分步講解

    本系統(tǒng)主要論述了如何使用JAVA語言開發(fā)一個(gè)大學(xué)生心理服務(wù)系統(tǒng) ,本系統(tǒng)將嚴(yán)格按照軟件開發(fā)流程進(jìn)行各個(gè)階段的工作,采用B/S架構(gòu),面向?qū)ο缶幊趟枷脒M(jìn)行項(xiàng)目開發(fā)
    2022-09-09
  • SpringBoot配置SSL同時(shí)支持http和https訪問實(shí)現(xiàn)

    SpringBoot配置SSL同時(shí)支持http和https訪問實(shí)現(xiàn)

    本文主要介紹了SpringBoot配置SSL同時(shí)支持http和https訪問實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07

最新評(píng)論