全局异常处理是通过 @RestControllerAdvice 这个注解完成的
首先我的全局异常处理是放在公共模块,然后通过 maven 引入各个微服务中
全局异常处理代码:
package com.sys_utils.exception;
import com.baomidou.mybatisplus.extension.api.R;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.xml.transform.Result;
@ControllerAdvice
public class GlobalExceptionHandle {
@ResponseBody
@ExceptionHandler(Exception.class)
public R error(Exception e){
return R.failed("系统异常,请联系管理员QQ:1160403439");
}
}
但是,这样的话是不会生效的,我们需要在微服务启动类中去扫描这个异常类配置所在的包
@SpringBootApplication(scanBasePackages = {"com.sys_utils","com.sys_role"})
public class SysRoleApplication {
public static void main(String[] args) {
SpringApplication.run(SysRoleApplication.class, args);
}
}
这样的话,Spring Cloud 中的全局异常处理就会生效了。