add 增加 Mybatis 全局异常处理 开启多数据源切换 严格模式 找不到数据源报错

2.X
疯狂的狮子Li 3 years ago
parent 6259a5e19f
commit 71ae01a546

@ -23,6 +23,8 @@ spring:
p6spy: true p6spy: true
# 开启seata代理开启后默认每个数据源都代理如果某个不需要代理可单独关闭 # 开启seata代理开启后默认每个数据源都代理如果某个不需要代理可单独关闭
seata: true seata: true
# 严格模式 匹配不到数据源则报错
strict: true
druid: druid:
initial-size: 5 initial-size: 5
min-idle: 5 min-idle: 5

@ -10,6 +10,7 @@ import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.exception.DemoModeException; import com.ruoyi.common.core.exception.DemoModeException;
import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.exception.ServiceException;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.MyBatisSystemException;
import org.springframework.dao.DuplicateKeyException; import org.springframework.dao.DuplicateKeyException;
import org.springframework.validation.BindException; import org.springframework.validation.BindException;
import org.springframework.web.HttpRequestMethodNotSupportedException; import org.springframework.web.HttpRequestMethodNotSupportedException;
@ -89,6 +90,21 @@ public class GlobalExceptionHandler {
return R.fail("数据库中已存在该记录,请联系管理员确认"); return R.fail("数据库中已存在该记录,请联系管理员确认");
} }
/**
* 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);
}
/** /**
* *
*/ */

Loading…
Cancel
Save