值得收藏的SpringBoot实用的小技巧-创新互联

前言

成都创新互联公司从2013年创立,是专业互联网技术服务公司,拥有项目做网站、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元临漳做网站,已为上家服务,为临漳各地企业和个人服务,联系电话:13518219792

最近分享的一些源码、框架设计的东西。我发现大家热情不是特别高,想想大多数应该还是正儿八经写代码的居多;这次就分享一点接地气的: SpringBoot 使用中的一些小技巧。

算不上多高大上的东西,但都还挺有用。

屏蔽外部依赖

第一个是屏蔽外部依赖,什么意思呢?

比如大家日常开发时候有没有这样的烦恼:

项目是基于 SpringCloud 或者是 dubbo 这样的分布式服务,你需要依赖许多基础服务。

比如说某个订单号的生成、获取用户信息等。

由于服务拆分,这些功能都是在其他应用中以接口的形式提供,单测还好我还可以利用 Mock 把它屏蔽掉。

但如果自己想把应用启动起来同时把自己相关的代码跑一遍呢?

通常有几种做法:


•本地把所有的服务都启动起来。
•把注册中心换为开发环境,依赖开发环境的服务。
•直接把代码推送到开发环境自测。

看起来三种都可以,以前我也是这么干的。但还是有几个小问题:


•本地启动有可能服务很多,全部起来电脑能不能撑住还两说,万一服务有问题就进行不下去了。
•依赖开发环境的前提是网络打通,还有一个问题就是开发环境代码很不稳定很大可能会影响你的测试。
•推送到开发环境应该是比较靠谱的方案,但如果想调试只有日志大法,没有本地 debug 的效率高效。

那如何解决问题呢?既可以在本地调试也不用启动其他服务。

其实也可以利用单测的做法,把其他外部依赖 Mock 掉就行了。

大致的流程分为以下几步:


•SpringBoot 启动之后在 Spring 中找出你需要屏蔽的那个 API 的 bean(通常情况下这个接口都是交给 Spring 管理的)。
•手动从 bean 容器中删除该 bean。
•重新创建一个该 API 的对象,只不过是通过 Mock 出来的。
•再手动注册进 bean 容器中。

以下面这段代码为例:


 @Override
 public BaseResponse getUserByHystrix(@RequestBody UserReqVO userReqVO) {

  OrderNoReqVO vo = new OrderNoReqVO();
  vo.setAppId(123L);
  vo.setReqNo(userReqVO.getReqNo());
  BaseResponse orderNo = orderServiceClient.getOrderNo(vo);
  return orderNo;
 }

网页题目:值得收藏的SpringBoot实用的小技巧-创新互联
链接地址:http://pwwzsj.com/article/hescd.html