本文主要是介绍十次方微服务项目实战04--统一异常和跨域问题处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在实际项目中,通常会对公共异常进行统一处理,另外,在前后端分离等项目中也会存在跨域问题,本文就这两个方面做下统一说明。
公共异常处理
为了使代码更统一维护,创建一个类集中处理异常。
在com.tensquare.base.controller
中创建公共异常处理类BaseExceptionHandler
。
代码如下:
package com.tensquare.base.controller;import entity.Result;
import entity.StatusCode;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;/*** Created by me on 2019/6/25.*/
@ControllerAdvice
public class BaseExceptionHandler {@ExceptionHandler(value = Exception.class)@ResponseBodypublic Result error(Exception e) {e.printStackTrace();return new Result(false, StatusCode.ERROR, e.getMessage());}
}
如上,当系统出现异常时,会统一处理。
跨域处理
首先看下,跨域是什么?浏览器从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不变通,都是跨域。
由于我们采用前后端分离开发,也是前后端分离部署,必然会存在跨域问题。
那么,如何解决跨域呢?很简单,只需要在controller
类上添加注解@CrossOrigin
即可,该注解其实是CORS
的实现。
CORS(Cross-Origin Resource Sharing,跨资源共享)
是W3C
出的一个标准,其思想是使用自定义的HTTP
头部让浏览器与服务器进行沟通,从而决定请求或响应是成功还是失败。
因此,要想实现CORS
进行跨域,需要再服务器进行一些设置,同时前端也需要做一些配置和分析,过多的本文就不必再描述,有兴趣Google
一下。
这篇关于十次方微服务项目实战04--统一异常和跨域问题处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!