From 6467a0776c45f0d307f8767eb3035b33c806c561 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?=
<15040126243@163.com>
Date: Tue, 7 Jun 2022 21:24:23 +0800
Subject: [PATCH] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E8=A7=A3?=
=?UTF-8?q?=E8=80=A6=20security=20=E4=B8=8E=20mybatis=20=E6=A8=A1=E5=9D=97?=
=?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BE=9D=E8=B5=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
ruoyi-common/ruoyi-common-core/pom.xml | 4 --
.../handler/MybatisExceptionHandler.java | 46 +++++++++++++++++++
.../handler/GlobalExceptionHandler.java | 27 -----------
3 files changed, 46 insertions(+), 31 deletions(-)
create mode 100644 ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/handler/MybatisExceptionHandler.java
diff --git a/ruoyi-common/ruoyi-common-core/pom.xml b/ruoyi-common/ruoyi-common-core/pom.xml
index 7937f32f..f7f87575 100644
--- a/ruoyi-common/ruoyi-common-core/pom.xml
+++ b/ruoyi-common/ruoyi-common-core/pom.xml
@@ -29,10 +29,6 @@
spring-web
-
- org.mybatis.spring.boot
- mybatis-spring-boot-starter
-
com.baomidou
mybatis-plus-annotation
diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/handler/MybatisExceptionHandler.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/handler/MybatisExceptionHandler.java
new file mode 100644
index 00000000..032a0c6f
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/handler/MybatisExceptionHandler.java
@@ -0,0 +1,46 @@
+package com.ruoyi.common.mybatis.handler;
+
+import com.ruoyi.common.core.domain.R;
+import lombok.extern.slf4j.Slf4j;
+import org.mybatis.spring.MyBatisSystemException;
+import org.springframework.dao.DuplicateKeyException;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * Mybatis异常处理器
+ *
+ * @author Lion Li
+ */
+@Slf4j
+@RestControllerAdvice
+public class MybatisExceptionHandler {
+
+ /**
+ * 主键或UNIQUE索引,数据重复异常
+ */
+ @ExceptionHandler(DuplicateKeyException.class)
+ public R handleDuplicateKeyException(DuplicateKeyException e, HttpServletRequest request) {
+ String requestURI = request.getRequestURI();
+ log.error("请求地址'{}',数据库中已存在记录'{}'", requestURI, e.getMessage());
+ return R.fail("数据库中已存在该记录,请联系管理员确认");
+ }
+
+ /**
+ * Mybatis系统异常 通用处理
+ */
+ @ExceptionHandler(MyBatisSystemException.class)
+ public R 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);
+ }
+
+}
diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java
index fefb3a3d..d11d80f8 100644
--- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java
+++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java
@@ -10,8 +10,6 @@ import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.exception.DemoModeException;
import com.ruoyi.common.core.exception.ServiceException;
import lombok.extern.slf4j.Slf4j;
-import org.mybatis.spring.MyBatisSystemException;
-import org.springframework.dao.DuplicateKeyException;
import org.springframework.validation.BindException;
import org.springframework.web.HttpRequestMethodNotSupportedException;
import org.springframework.web.bind.MethodArgumentNotValidException;
@@ -80,31 +78,6 @@ public class GlobalExceptionHandler {
return R.fail(e.getMessage());
}
- /**
- * 主键或UNIQUE索引,数据重复异常
- */
- @ExceptionHandler(DuplicateKeyException.class)
- public R handleDuplicateKeyException(DuplicateKeyException e, HttpServletRequest request) {
- String requestURI = request.getRequestURI();
- log.error("请求地址'{}',数据库中已存在记录'{}'", requestURI, e.getMessage());
- return R.fail("数据库中已存在该记录,请联系管理员确认");
- }
-
- /**
- * Mybatis系统异常 通用处理
- */
- @ExceptionHandler(MyBatisSystemException.class)
- public R 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);
- }
-
/**
* 业务异常
*/