linux怎么查看本机内存大小
327
2022-12-01
sentinel-1.8版本找不到UrlBlockHandler接口,如何自定义错误页面?
一、背景
最近在学习springcloud alibaba时候,模拟使用sentinel进行流量管理控制,在自定义错误页面时,网上很多使用老版本sentinel的教程,都是通过继承UrlBlockHandler这个方法来实现。然而我的sentinel版本是1.8,其中找到这个接口。最后发现官方将UrlBlockHandler接口改成了BlockExceptionHandler接口。
二、解决方案
实现BlockExceptionHandler接口
import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.BlockExceptionHandler;import com.alibaba.csp.sentinel.slots.block.BlockException;import com.alibaba.csp.sentinel.slots.block.authority.AuthorityException;import com.alibaba.csp.sentinel.slots.block.degrade.DegradeException;import com.alibaba.csp.sentinel.slots.block.flow.FlowException;import com.alibaba.csp.sentinel.slots.block.flow.param.ParamFlowException;import com.alibaba.csp.sentinel.slots.system.SystemBlockException;import com.fasterxml.jackson.databind.ObjectMapper;import lombok.AllArgsConstructor;import lombok.Builder;import lombok.Data;import lombok.NoArgsConstructor;import javax.servlet.javax.servlet.* 自定义错误页面 * * @author Saint */ @Componentpublic class MyUrlBlockHandler implements BlockExceptionHandler { @Override public void handle(HttpServletRequest HttpServletResponse BlockException e) throws Exception { ErrorMsg msg = null; if (e instanceof FlowException) { msg = ErrorMsg.builder() .msg("呀,我被限流了!") .status(101).build(); } else if (e instanceof DegradeException) { msg = ErrorMsg.builder() .msg("呀,我被降级了!") .status(102).build(); } else if (e instanceof ParamFlowException) { msg = ErrorMsg.builder() .msg("呀,我被热点参数限流了!") .status(103).build(); } else if (e instanceof SystemBlockException) { msg = ErrorMsg.builder() .msg("呀,系统规则(负载/...不满足要求)!") .status(104).build(); } else if (e instanceof AuthorityException) { msg = ErrorMsg.builder() .msg("呀,授权规则不通过!") .status(105).build(); } // "application/json;charset=utf-8"); // spring mvc自带的json操作工具jackson new ObjectMapper() .writeValue( msg ); }}@Data@NoArgsConstructor@AllArgsConstructor@Builderclass ErrorMsg { private Integer status; private String msg;}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~