关于springCloud简单的网关功能实现

      公司以前的架构,每个controller都会涉及到返回code,info,data三个值,而code和info都是重复的操作。遵循一个原则,如果一个动作重复了3次以上,就应该思考自己的代码了,在这里主要是借鉴了代理模式,主要返回一个data,将data增强再返回就可以实现了。

     公司采用springBoot和springCloud,利用了Zuul作为网关路由。使用了Zuul的ZuulFilter,类似拦截器的功能,将返回类型增强。主要核心代码是

其中if判断,是因为如果controller可以通过直接抛出异常,而不用返回code和info,当controller试图抛出异常的时候,就会被spring处理,利用的是spring的全局异常处理


这样就能形成了简单的网关增强功能。

说一下自己遇见的坑

)1 由于springBoot启动类上写了@EnableFeignClients这个注解,会导致这个服务的controller会返回xml。网上也有提到过,但是并没有生效,我自己也没能解决,但是后面莫名就可以返回json了,我确实也找不到原因。

)2 之前以为抛出异常,就能够zuul接受,结果并不行,因此考虑到spring的AOP功能,理所当然想到了spring的异常处理,换了一个思路,如上图。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值