使用原先 ExceptionHandler 共享 ExceptionInfoHolder 的方式。
parent
151a33cad4
commit
d01db60309
|
@ -4,6 +4,8 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
import xyz.zhouxy.plusone.exception.handler.BaseExceptionHandler.ExceptionInfoHolder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AllExceptionHandlerConfig
|
* AllExceptionHandlerConfig
|
||||||
*/
|
*/
|
||||||
|
@ -12,7 +14,7 @@ import org.springframework.context.annotation.Configuration;
|
||||||
public class AllExceptionHandlerConfig {
|
public class AllExceptionHandlerConfig {
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
AllExceptionHandler getAllExceptionHandler() {
|
AllExceptionHandler getAllExceptionHandler(ExceptionInfoHolder exceptionInfoHolder) {
|
||||||
return new AllExceptionHandler(ExceptionInfoHolderFactory.newDefaultExceptionInfoHolder());
|
return new AllExceptionHandler(exceptionInfoHolder);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,6 @@ import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||||
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import xyz.zhouxy.plusone.util.RestfulResult;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 默认异常的处理器
|
* 默认异常的处理器
|
||||||
|
@ -40,9 +39,8 @@ import xyz.zhouxy.plusone.util.RestfulResult;
|
||||||
@Order(Ordered.LOWEST_PRECEDENCE - 1)
|
@Order(Ordered.LOWEST_PRECEDENCE - 1)
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class DefaultExceptionHandler extends BaseExceptionHandler {
|
public class DefaultExceptionHandler extends BaseExceptionHandler {
|
||||||
|
public DefaultExceptionHandler(ExceptionInfoHolder exceptionInfoHolder) {
|
||||||
public DefaultExceptionHandler() {
|
super(exceptionInfoHolder);
|
||||||
super(ExceptionInfoHolderFactory.newDefaultExceptionInfoHolder());
|
|
||||||
set(IllegalArgumentException.class, 4010000, "格式错误", HttpStatus.FORBIDDEN);
|
set(IllegalArgumentException.class, 4010000, "格式错误", HttpStatus.FORBIDDEN);
|
||||||
set(DataAccessException.class, 6030000, "数据库错误", HttpStatus.INTERNAL_SERVER_ERROR, true);
|
set(DataAccessException.class, 6030000, "数据库错误", HttpStatus.INTERNAL_SERVER_ERROR, true);
|
||||||
set(MethodArgumentNotValidException.class,
|
set(MethodArgumentNotValidException.class,
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
package xyz.zhouxy.plusone.exception.config;
|
||||||
|
|
||||||
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
import xyz.zhouxy.plusone.constant.ErrorCodeConsts;
|
||||||
|
import xyz.zhouxy.plusone.exception.handler.BaseExceptionHandler.ExceptionInfoHolder;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
public class PlusoneExceptionHandlerConfig {
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@ConditionalOnMissingBean
|
||||||
|
ExceptionInfoHolder exceptionInfoHolder() {
|
||||||
|
return new ExceptionInfoHolder(ErrorCodeConsts.DEFAULT_ERROR_CODE);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,15 +0,0 @@
|
||||||
package xyz.zhouxy.plusone.exception.handler;
|
|
||||||
|
|
||||||
import xyz.zhouxy.plusone.constant.ErrorCodeConsts;
|
|
||||||
import xyz.zhouxy.plusone.exception.handler.BaseExceptionHandler.ExceptionInfoHolder;
|
|
||||||
|
|
||||||
public class ExceptionInfoHolderFactory {
|
|
||||||
|
|
||||||
private ExceptionInfoHolderFactory() {
|
|
||||||
throw new IllegalStateException("Utility class");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static ExceptionInfoHolder newDefaultExceptionInfoHolder() {
|
|
||||||
return new ExceptionInfoHolder(ErrorCodeConsts.DEFAULT_ERROR_CODE);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -3,13 +3,12 @@ package xyz.zhouxy.plusone.validator;
|
||||||
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
||||||
|
|
||||||
import xyz.zhouxy.plusone.exception.handler.BaseExceptionHandler;
|
import xyz.zhouxy.plusone.exception.handler.BaseExceptionHandler;
|
||||||
import xyz.zhouxy.plusone.exception.handler.ExceptionInfoHolderFactory;
|
|
||||||
|
|
||||||
@RestControllerAdvice
|
@RestControllerAdvice
|
||||||
public class InvalidInputExceptionHandler extends BaseExceptionHandler {
|
public class InvalidInputExceptionHandler extends BaseExceptionHandler {
|
||||||
|
|
||||||
protected InvalidInputExceptionHandler() {
|
public InvalidInputExceptionHandler(ExceptionInfoHolder exceptionInfoHolder) {
|
||||||
super(ExceptionInfoHolderFactory.newDefaultExceptionInfoHolder());
|
super(exceptionInfoHolder);
|
||||||
set(InvalidInputException.class, InvalidInputException.ERROR_CODE, "无效的用户输入");
|
set(InvalidInputException.class, InvalidInputException.ERROR_CODE, "无效的用户输入");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,15 +7,13 @@ import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||||
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
||||||
|
|
||||||
import xyz.zhouxy.plusone.exception.handler.BaseExceptionHandler;
|
import xyz.zhouxy.plusone.exception.handler.BaseExceptionHandler;
|
||||||
import xyz.zhouxy.plusone.exception.handler.ExceptionInfoHolderFactory;
|
|
||||||
import xyz.zhouxy.plusone.system.application.exception.AccountLoginException;
|
import xyz.zhouxy.plusone.system.application.exception.AccountLoginException;
|
||||||
import xyz.zhouxy.plusone.util.RestfulResult;
|
|
||||||
|
|
||||||
@RestControllerAdvice
|
@RestControllerAdvice
|
||||||
public class AccountLoginExceptionHandler extends BaseExceptionHandler {
|
public class AccountLoginExceptionHandler extends BaseExceptionHandler {
|
||||||
|
|
||||||
protected AccountLoginExceptionHandler() {
|
public AccountLoginExceptionHandler(ExceptionInfoHolder exceptionInfoHolder) {
|
||||||
super(ExceptionInfoHolderFactory.newDefaultExceptionInfoHolder());
|
super(exceptionInfoHolder);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ExceptionHandler({ AccountLoginException.class })
|
@ExceptionHandler({ AccountLoginException.class })
|
||||||
|
|
|
@ -15,8 +15,6 @@ import cn.dev33.satoken.exception.SaTokenException;
|
||||||
import cn.dev33.satoken.exception.SameTokenInvalidException;
|
import cn.dev33.satoken.exception.SameTokenInvalidException;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import xyz.zhouxy.plusone.exception.handler.BaseExceptionHandler;
|
import xyz.zhouxy.plusone.exception.handler.BaseExceptionHandler;
|
||||||
import xyz.zhouxy.plusone.exception.handler.ExceptionInfoHolderFactory;
|
|
||||||
import xyz.zhouxy.plusone.util.RestfulResult;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sa-Token 异常处理器
|
* Sa-Token 异常处理器
|
||||||
|
@ -27,8 +25,9 @@ import xyz.zhouxy.plusone.util.RestfulResult;
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class SaTokenExceptionHandler extends BaseExceptionHandler {
|
public class SaTokenExceptionHandler extends BaseExceptionHandler {
|
||||||
|
|
||||||
public SaTokenExceptionHandler() {
|
|
||||||
super(ExceptionInfoHolderFactory.newDefaultExceptionInfoHolder());
|
public SaTokenExceptionHandler(ExceptionInfoHolder exceptionInfoHolder) {
|
||||||
|
super(exceptionInfoHolder);
|
||||||
set(NotPermissionException.class, 4030103, "会话未能通过权限认证", HttpStatus.FORBIDDEN);
|
set(NotPermissionException.class, 4030103, "会话未能通过权限认证", HttpStatus.FORBIDDEN);
|
||||||
set(NotRoleException.class, 4030103, "会话未能通过角色认证", HttpStatus.FORBIDDEN);
|
set(NotRoleException.class, 4030103, "会话未能通过角色认证", HttpStatus.FORBIDDEN);
|
||||||
set(DisableServiceException.class, 4030202, "账号指定服务已被封禁", HttpStatus.FORBIDDEN);
|
set(DisableServiceException.class, 4030202, "账号指定服务已被封禁", HttpStatus.FORBIDDEN);
|
||||||
|
|
Loading…
Reference in New Issue