国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

若依(ruoyi)開源系統(tǒng)-多數(shù)據(jù)源問題踩坑實錄

這篇具有很好參考價值的文章主要介紹了若依(ruoyi)開源系統(tǒng)-多數(shù)據(jù)源問題踩坑實錄。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

內容概要

上一節(jié)內容? ?介紹了用開源系統(tǒng)若依(ruoyi)搭建頁面的過程。在實際項目中,經常遇到多數(shù)據(jù)源后者主從庫的情況。本節(jié)記錄若依多數(shù)據(jù)源配置過程中遇到的問題排查過程。

背景描述

1.上一節(jié)在ry-vue庫中新建了表t_user,這次新建數(shù)據(jù)庫jingyes,新加同樣的表t_user。其他功能不變,我們將t_user數(shù)據(jù)源由ry-vue切換到jingyes庫,實現(xiàn)簡單的多數(shù)據(jù)源場景。

CREATE TABLE `t_user` (
  `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
  `name` varchar(30) NOT NULL DEFAULT '' COMMENT '姓名',
  `age` int(11) NULL DEFAULT NULL COMMENT '年齡',
  `gender` tinyint(2) NOT NULL DEFAULT 0 COMMENT '性別,0:女 1:男',
  PRIMARY KEY (`id`)
) COMMENT = '用戶表';

若依多數(shù)據(jù)源配置

官網(wǎng)教程操作若依多數(shù)據(jù)源配置?
http://doc.ruoyi.vip/ruoyi/document/htsc.html#多數(shù)據(jù)源使用

  1. application-druid.yml 新增數(shù)據(jù)源配置
spring:
    datasource:
            jingyes:
                url: jdbc:mysql://localhost:13306/jingyes?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                username: root
                password: 123456
  1. 擴展DataSourceType枚舉,新增數(shù)據(jù)源JINGYES
public enum DataSourceType
{
    /**
     * 主庫
     */
    MASTER,

    /**
     * 從庫
     */
    SLAVE,

    JINGYES;
}
  1. 在目標方法設置注解?@DataSource
    @Override
    @DataSource(value = DataSourceType.JINGYES)
    public List<TUser> selectTUserList(TUser tUser)
    {
        return tUserMapper.selectTUserList(tUser);
    }
  1. 調整DruidConfig,新增數(shù)據(jù)源配置
     @Bean
     @ConfigurationProperties("spring.datasource.druid.jingyes")
     @ConditionalOnProperty(prefix = "spring.datasource.druid.jingyes", name = "enabled", havingValue = "true")
     public DataSource jingyesDataSource(DruidProperties druidProperties)
     {
         DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
         return druidProperties.dataSource(dataSource);
     }
    
     @Bean(name = "dynamicDataSource")
     @Primary
     public DynamicDataSource dataSource(DataSource masterDataSource)
     {
         Map<Object, Object> targetDataSources = new HashMap<>();
         targetDataSources.put(DataSourceType.MASTER.name(), masterDataSource);
         setDataSource(targetDataSources, DataSourceType.SLAVE.name(), "slaveDataSource");
         //這里新增自定義數(shù)據(jù)源
         setDataSource(targetDataSources, DataSourceType.JINGYES.name(), "jingyesDataSource");
         return new DynamicDataSource(masterDataSource, targetDataSources);
     }
    
  2. 重啟服務端項目
    發(fā)現(xiàn)點擊上一節(jié)創(chuàng)建的“外包用戶管理”,顯示“切換到JINGYES數(shù)據(jù)源”,然后實際上訪問的仍然上MASTER數(shù)據(jù)源,也就是ry-vue庫。(jingyes.t_user表目前還沒有數(shù)據(jù))
    若依(ruoyi)開源系統(tǒng)-多數(shù)據(jù)源問題踩坑實錄

調試排查

跟蹤調試一下,發(fā)現(xiàn)個問題,這里的targetDataSources居然只有Master,那put進去的其他兩條呢?
若依(ruoyi)開源系統(tǒng)-多數(shù)據(jù)源問題踩坑實錄

終于被我找到了個若依的坑:這里的異常被吃掉了??!
若依(ruoyi)開源系統(tǒng)-多數(shù)據(jù)源問題踩坑實錄

暫時先打印下異常日志,看下到底什么情況,感覺快找到問題了。
若依(ruoyi)開源系統(tǒng)-多數(shù)據(jù)源問題踩坑實錄

上面命名定義了bean了,為什么會沒有呢?返回去看看

    @Bean
    @ConfigurationProperties("spring.datasource.druid.slave")
    @ConditionalOnProperty(prefix = "spring.datasource.druid.slave", name = "enabled", havingValue = "true")
    public DataSource slaveDataSource(DruidProperties druidProperties)
    {
        DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
        return druidProperties.dataSource(dataSource);
    }

原來是屬性中enabled的原因,恍然大悟啊。

解決方案

最終解決的方式很簡單,把application-druid.yml中jingyes數(shù)據(jù)源新增enabled=true。

spring:
    datasource:
            jingyes:
		        enabled: true #看這里!!
                url: jdbc:mysql://localhost:13306/jingyes?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                username: root
                password: 123456

重啟服務端項目,再調試一下,發(fā)現(xiàn)可以取到正確的數(shù)據(jù)源了。
若依(ruoyi)開源系統(tǒng)-多數(shù)據(jù)源問題踩坑實錄

補充一點,@DataSource除了放在Service層,直接放在Mapper接口也是可以的。

    @DataSource(value = DataSourceType.JINGYES)
    public List<TUser> selectTUserList(TUser tUser);

QQ技術交流群: 928981528

本人公眾號[ 敬YES ]同步更新,歡迎大家關注~

若依(ruoyi)開源系統(tǒng)-多數(shù)據(jù)源問題踩坑實錄文章來源地址http://www.zghlxwxcb.cn/news/detail-711697.html

到了這里,關于若依(ruoyi)開源系統(tǒng)-多數(shù)據(jù)源問題踩坑實錄的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • RuoYi-Vue-generator 代碼生成模塊 動態(tài) 多數(shù)據(jù)源切換 前端+后臺

    RuoYi-Vue-generator 代碼生成模塊 動態(tài) 多數(shù)據(jù)源切換 前端+后臺

    需求場景: 若依框架的30張數(shù)據(jù)表 和 業(yè)務使用的數(shù)據(jù)表,同數(shù)據(jù)源,但分開的兩個庫,原生若依只支持主庫的代碼生成,故自己修改添加代碼來實現(xiàn) 若依多數(shù)據(jù)源的使用 修改頁面ruoyi-uisrcviewstoolgenimportTable.vue el-form 中新增 el-form-item 添加 data 添加方法 ruoyi-uisrcapitool

    2024年02月04日
    瀏覽(26)
  • 若依(ruoyi)開源系統(tǒng)保姆級實踐-完成第一個頁面

    若依(ruoyi)開源系統(tǒng)保姆級實踐-完成第一個頁面

    若依官網(wǎng)文檔地址:http://doc.ruoyi.vip/ruoyi/document/hjbs.html 本教程主要內容,自定義數(shù)據(jù)庫表,使用若依開源系統(tǒng)生成代碼并配置權限。 若依環(huán)境配置 新建數(shù)據(jù)表t_user,利用若依代碼生成工具生成服務端及頁面代碼。 菜單配置 權限配置 選用ry-vue版本,項目地址:https://gitee.c

    2024年02月08日
    瀏覽(19)
  • 開源項目學習:若依RuoYi-Vue后臺管理系統(tǒng)【環(huán)境搭建】

    開源項目學習:若依RuoYi-Vue后臺管理系統(tǒng)【環(huán)境搭建】

    第一章 環(huán)境搭建 第二章 項目運行 第三章 閱讀源碼:例子-新增用戶接口 第四章 基于ruoyi-vue開發(fā)新項目 本文盡量貼近零基礎入門,獻給初入門的學弟學妹們! 文章基本流程:環(huán)境配置→運行項目→閱讀源碼 安裝環(huán)境時最好修改安裝路徑! Java開發(fā)必備! JDK下載:http://www

    2023年04月19日
    瀏覽(23)
  • 數(shù)據(jù)源使用問題記錄

    ?\\\"Zero?date?value?prohibited\\\"? url上拼接?zeroDateTimeBehavior=convertToNull com.alibaba.druid.pool.DruidDataSource?:?create?connection?Error java.lang.ExceptionInInitializerError:?null at?com.mysql.jdbc.Util.stackTraceToString(Util.java:378) at?com.mysql.jdbc.Util.(Util.java:121) at?com.mysql.jdbc.NonRegisteringDriver.parseURL(NonRegistering

    2024年02月20日
    瀏覽(28)
  • 解決WPF綁定數(shù)據(jù)源,數(shù)據(jù)更新,UI不更新的問題

    XAML中已經設置 View中已經實現(xiàn)IDisposable接口。 ViewModel中已經實現(xiàn)INotifyPropertyChanged接口方法RaisePropertyChanged。 Model中已經配置TextValue 如果已經正確設置Model與ViewModel的 INotifyPropertyChanged ,且Model中的數(shù)據(jù)可以執(zhí)行 RaisePropertyChanged ,但此時UI仍不能更新,請檢查View中是否 DataCont

    2024年02月14日
    瀏覽(22)
  • 分享一個優(yōu)秀的動態(tài)數(shù)據(jù)源開源庫-dynamic-datasource-spring-boot-starter

    分享一個優(yōu)秀的動態(tài)數(shù)據(jù)源開源庫-dynamic-datasource-spring-boot-starter

    在我們的Java后端研發(fā)工作中, 有時候由于業(yè)務的快速迭代和數(shù)據(jù)的安全隔離性,往往會為不同的 API業(yè)務線分配不同的數(shù)據(jù)庫,即一個微服務經常需要和多個數(shù)據(jù)源打交道。 dynamic-datasource-spring-boot-starter 是一個基于springboot的快速集成多數(shù)據(jù)源的啟動器。 其支持 Jdk 1.7+, Spring

    2024年02月12日
    瀏覽(18)
  • 解決多數(shù)據(jù)源的事務問題 - 基于springboot--mybatis

    解決多數(shù)據(jù)源的事務問題 - 基于springboot--mybatis

    在Spring Boot和MyBatis中,我們有時需要在方法中同時使用兩個不同的數(shù)據(jù)庫,但使用 @Transactional 注解會變得復雜。這時我們可以用一種更靈活的方法來處理。 想象一下這樣的場景:我們有兩個數(shù)據(jù)庫,我們希望在一個方法中同時操作它們,但是普通的 @Transactional 注解變得不太

    2024年02月01日
    瀏覽(17)
  • DataEase開源BI工具安裝_數(shù)據(jù)全量_增量同步_大屏拖拽自動生成_多數(shù)據(jù)源支持_數(shù)據(jù)血緣分析---大數(shù)據(jù)工作筆記0183

    DataEase開源BI工具安裝_數(shù)據(jù)全量_增量同步_大屏拖拽自動生成_多數(shù)據(jù)源支持_數(shù)據(jù)血緣分析---大數(shù)據(jù)工作筆記0183

    我這里用的是Centos7.9安裝的 可以通過uname -p來查看一下我們的電腦架構,可以看到是x86_64架構的 ?我們下第一個,這個是x86架構的,第二個arm架構的? ? 然后解壓到/opt/module中 ? 然后再去重命名一下文件夾.? 推薦200G? 本地模式的功能比較多 推薦100G ?

    2024年02月15日
    瀏覽(19)
  • SpringBoot @DS注解實現(xiàn)多數(shù)據(jù)源配置及問題解決

    SpringBoot @DS注解實現(xiàn)多數(shù)據(jù)源配置及問題解決

    進過驗證,@DS注解加到mapper接口、service接口、service方法里都不生效,獲取的還是默認的主數(shù)據(jù)源。猜測是由于spring的aop切面機制導致攔截不到@DS注解,進而不能切換數(shù)據(jù)源,正確的做法是添加到service實現(xiàn)類或者實現(xiàn)類里具體的方法上。 在事務方法內調用@DS注解的方法,@D

    2023年04月25日
    瀏覽(24)
  • Spring Boot多數(shù)據(jù)源配置詳解及報錯問題解決

    Spring Boot多數(shù)據(jù)源配置詳解及報錯問題解決

    Spring Boot多數(shù)據(jù)源配置詳解 前幾天,公司提了個需求,對一個項目進行二次開發(fā),在開發(fā)過程中,需要配置多數(shù)據(jù)源來進行數(shù)據(jù)庫的操作。下面我將主鍵探索總結的配置流程和遇到的各種坑做以總結,希望能夠幫到遇到同樣問題的友友。有錯的地方,請各位大佬留言指出。

    2024年02月16日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包