From 517c5705b6b999a07e149137f7feb233003a042c Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期五, 08 四月 2022 11:39:40 +0800 Subject: [PATCH] add 增加 Mybatis 全局异常处理 开启多数据源切换 严格模式 找不到数据源报错 --- ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java | 18 +++++++++++++++++- ruoyi-admin/src/main/resources/application-prod.yml | 2 ++ ruoyi-admin/src/main/resources/application-dev.yml | 2 ++ 3 files changed, 21 insertions(+), 1 deletions(-) diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml index 4f3fca1..d5994e4 100644 --- a/ruoyi-admin/src/main/resources/application-dev.yml +++ b/ruoyi-admin/src/main/resources/application-dev.yml @@ -47,6 +47,8 @@ p6spy: true # 璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓� master primary: master + # 涓ユ牸妯″紡 鍖归厤涓嶅埌鏁版嵁婧愬垯鎶ラ敊 + strict: true datasource: # 涓诲簱鏁版嵁婧� master: diff --git a/ruoyi-admin/src/main/resources/application-prod.yml b/ruoyi-admin/src/main/resources/application-prod.yml index 5139221..0b9b987 100644 --- a/ruoyi-admin/src/main/resources/application-prod.yml +++ b/ruoyi-admin/src/main/resources/application-prod.yml @@ -54,6 +54,8 @@ p6spy: false # 璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓� master primary: master + # 涓ユ牸妯″紡 鍖归厤涓嶅埌鏁版嵁婧愬垯鎶ラ敊 + strict: true datasource: # 涓诲簱鏁版嵁婧� master: diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java index 0af1b69..326c96a 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java @@ -9,9 +9,10 @@ import com.ruoyi.common.exception.DemoModeException; import com.ruoyi.common.exception.ServiceException; import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.MyBatisSystemException; import org.springframework.context.support.DefaultMessageSourceResolvable; -import org.springframework.validation.BindException; import org.springframework.dao.DuplicateKeyException; +import org.springframework.validation.BindException; import org.springframework.web.HttpRequestMethodNotSupportedException; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ExceptionHandler; @@ -83,6 +84,21 @@ } /** + * Mybatis绯荤粺寮傚父 閫氱敤澶勭悊 + */ + @ExceptionHandler(MyBatisSystemException.class) + public R<Void> handleCannotFindDataSourceException(MyBatisSystemException e, HttpServletRequest request) { + String requestURI = request.getRequestURI(); + String message = e.getMessage(); + if (message.contains("CannotFindDataSourceException")) { + log.error("璇锋眰鍦板潃'{}', 鏈壘鍒版暟鎹簮", requestURI); + return R.fail("鏈壘鍒版暟鎹簮锛岃鑱旂郴绠$悊鍛樼‘璁�"); + } + log.error("璇锋眰鍦板潃'{}', Mybatis绯荤粺寮傚父", requestURI, e); + return R.fail(message); + } + + /** * 涓氬姟寮傚父 */ @ExceptionHandler(ServiceException.class) -- Gitblit v1.9.3