最后
即使是面试跳槽,那也是一个学习的过程。只有全面的复习,才能让我们更好的充实自己,武装自己,为自己的面试之路不再坎坷!今天就给大家分享一个Github上全面的Java面试题大全,就是这份面试大全助我拿下大厂Offer,月薪提至30K!
我也是第一时间分享出来给大家,希望可以帮助大家都能去往自己心仪的大厂!为金三银四做准备!
一共有20个知识点专题,分别是:
Dubbo面试专题
JVM面试专题
Java并发面试专题
Kafka面试专题
MongDB面试专题
MyBatis面试专题
MySQL面试专题
Netty面试专题
RabbitMQ面试专题
Redis面试专题
Spring Cloud面试专题
SpringBoot面试专题
zookeeper面试专题
常见面试算法题汇总专题
计算机网络基础专题
设计模式专题
- 前文《Spring Cloud Gateway过滤器精确控制异常返回(分析篇)》咱们阅读源码,了解到Spring Cloud Gateway是如何处理全局异常信息的,学了那么多理论,不免手痒想实战验证学习效果,今天咱们就来写代码,最终目标是改写下图两个红框中的内容:
- 为了简单起见,本篇不再新增maven子工程,而是基于前文创建的子工程gateway-change-body,在这里面继续写代码;
源码下载
- 本篇实战中的完整源码可在GitHub下载到,地址和链接信息如下表所示(https://github.com/zq2599/blog_demos):
| 名称 | 链接 | 备注 |
| :-- | :-- | :-- |
| 项目主页 | https://github.com/zq2599/blog_demos | 该项目在GitHub上的主页 |
| git仓库地址(https) | https://github.com/zq2599/blog_demos.git | 该项目源码的仓库地址,https协议 |
| git仓库地址(ssh) | git@github.com:zq2599/blog_demos.git | 该项目源码的仓库地址,ssh协议 |
- 这个git项目中有多个文件夹,本篇的源码在spring-cloud-tutorials文件夹下,如下图红框所示:
- spring-cloud-tutorials文件夹下有多个子工程,本篇的代码是gateway-change-body,如下图红框所示:
第一种:抛出ResponseStatusException异常
- 打开gateway-change-body工程的RequestBodyRewrite.java文件,改动如下图红框,如果请求body不含user-id参数就返回Mono.error,入参是ResponseStatusException异常,设置了返回码为400,message为一段中文描述:
-
接下来运行nacos、provider-hello工程、gateway-change-body工程
-
用postman发请求试试,请求和响应的详情如下图:
- 从上图可见,返回码为400,和我们设定的一样,但是message却为空,这是怎么回事呢?按照咱们的设定,这里应该显示请求参数必须包含user-id字段,看来咱们遇到一只拦路虎了
小小拦路虎
- 咱们代码中,抛异常的时候设定message内容如下图红框所示,但运行的时候返回的是空字符串,这是怎么回事呢?
- 来看DefaultErrorWebExceptionHandler.isIncludeMessage方法,看下图红框中的那个errorProperties,您会不会恍然大悟:这不就是springboot配置中的erro配置嘛!
- 修改工程的配置文件,红框内是新增的配置:
- 再用postman试试,如下图,这一次,status、message、exception、trace齐聚一堂,完全符合预期:
- 看来第一种方法是可行的:返回ResponseStatusException类型的异常;
第二种:自定义异常,带ResponseStatus注解
-
接下来试试第二种方法:通ResponseStatus注解
-
首先新建一个异常类MyGatewayException.java,使用了ResponseStatus,在里面配置返回码和message内容,这次的返回码用的是403:
最后
我想问下大家当初选择做程序员的初衷是什么?有思考过这个问题吗?高薪?热爱?
既然入了这行就应该知道,这个行业是靠本事吃饭的,你想要拿高薪没有问题,请好好磨练自己的技术,不要抱怨。有的人通过培训可以让自己成长,有些人可以通过自律强大的自学能力成长,如果你两者都不占,还怎么拿高薪?
架构师是很多程序员的职业目标,一个好的架构师是不愁所谓的35岁高龄门槛的,到了那个时候,照样大把的企业挖他。为什么很多人想进阿里巴巴,无非不是福利待遇好以及优质的人脉资源,这对个人职业发展是有非常大帮助的。
如果你也想成为一名好的架构师,那或许这份Java核心架构笔记你需要阅读阅读,希望能够对你的职业发展有所帮助。
中高级开发必知必会:
一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**