SpringBoot学习
文章平均质量分 72
天师吴彦祖
哟,又在写Bug呢?
展开
-
SpringBoot异常处理及其原理——源码学习
SpringBoot版本:2.3.4应用SpringBoot默认的异常处理机制是:对于浏览器客户端,返回一个白页(whiteLable)对于机器客户端,返回一个json,包含错误信息自定义错误页面页很简单,只要在静态资源路径里放置我们的页面,并用4xx.html和5xx.html命名,就把相应状态码的异常映射到相应的页面。原理下面来探究一下原理在控制器方法中设置一个除零错。@RestController@RequestMapping("/demo")public class原创 2021-10-20 13:10:50 · 475 阅读 · 0 评论 -
SpringBoot拦截器的使用及其原理——源码学习
该文的SpringBoot版本:2.3.4SpringBoot在web场景下,底层使用的是SpringMVC,所以这篇文章讲的本质上还是SpringMVC的内容。1、拦截其的使用使用拦截器有三步:实现HandlerInterceptor接口下的三个方法,分别是preHandle,postHandle,afterCompletion在WebMvcConfigurer中注册配置拦截路径和放行路径1.1实现HandlerInterceptor接口public class myIntercept原创 2021-10-19 17:12:38 · 496 阅读 · 0 评论 -
SpringBoot请求返回值处理与内容协商——源码学习
SpringBoot的web场景中,底层依然使用的是SpringMVC,框架会根据请求url找到它对应的handler,然后再找到该handler的handlerAdapter,handlerAdapter先回处理handler(controller.method())的形参,然后执行该方法,并返回方法的返回值,对应源码ServletInvocableHandlerMethod.invokeAndHandle()中的第一行,但这个返回结果并不能直接返回,而是需要进行进一步的处理,public void i原创 2021-10-19 14:08:07 · 419 阅读 · 0 评论 -
SpringBoot请求处理之控制器参数处理——源码学习
在DispatchServlet的doDispacth方法中,通过mappedHandler = getHandler(processedRequest);获得请求应用的处理器(controller.method())和拦截器,但没有立刻执行处理器中对应的方法,而是通过HandlerAdapter ha = getHandlerAdapter(mappedHandler.getHandler());获得一个处理器的适配器,这个适配器主要是为了在原有处理器基础上,处理请求参数的返回值。这里面包含了大量的工作,原创 2021-10-18 21:22:11 · 309 阅读 · 0 评论 -
SpringBoot请求处理之获取处理器——源码学习
在springboot中,请求会交由doDispatch()方法处理,其中调用mappedHandler = getHandler(processedRequest);,我们来看看它具体的获取过程。protected HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception { if (this.handlerMappings != null) { for (HandlerMapping mappi原创 2021-10-18 15:50:07 · 347 阅读 · 0 评论 -
SpringBoot请求处理过程(简略)——源码学习
在springboot的web场景中,底层依然是使用的spring mvc,收到的所有请求都要交由dispatchservlet来处理。DispatchServlet的继承关系:在原生的java servlet中,请求会交给service()方法处理,spring MVC是对原生servlet的封装,自然也是如此。在HttpServlet中,该类重写了service()方法,并将请求根据不同的方法分发给不同的doXXX()处理,后面的子类只有FrameworkServlet重写了service()方法原创 2021-10-18 13:51:47 · 786 阅读 · 0 评论