
Spring Boot 2.2.6 源码之旅
王伟王胖胖
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SpringBoot 2.2.6 相关知识点总结
SpringBoot 2.2.6 相关扩展点和注解总结扩展点注解扩展点一些常用的扩展点。注解一些常用注解,springcloud框架有很多自定义的其实也就是这些组合扩展出来的。先总结这些,后面慢慢补。好了,今天就到这里了,希望对学习理解有帮助,大神看见勿喷,仅为自己的学习理解,能力有限,请多包涵。...原创 2020-05-03 21:41:38 · 1586 阅读 · 1 评论 -
Spring Boot 2.2.6 源码之旅五十三ConfigFileApplicationListener配置文件加载原理四
Spring Boot 2.2.6 源码之旅五十三ConfigFileApplicationListener配置文件加载原理四基本流程图加载环境配置addLoadedPropertySources添加到环境属性源applyActiveProfiles添加激活配置多激活环境基本流程图加载环境配置如果有环境配置会进行处理,然后会加到profiles里,进行环境配置的加载。其实就是这个循环,只要...原创 2020-04-24 12:12:39 · 584 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅五十二ConfigFileApplicationListener配置文件加载原理三
Spring Boot 2.2.6 源码之旅五十二ConfigFileApplicationListener配置文件加载原理三application配置文件加载application配置文件加载loadForFileExtensionapplication配置文件加载我们考虑简单的application配置文件的加载,其实这个时候只是个名字,后面会进行前后缀的拼接。application配...原创 2020-04-24 12:12:12 · 659 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅五十一ConfigFileApplicationListener配置文件加载原理二
Spring Boot 2.2.6 源码之旅五十一ConfigFileApplicationListener配置文件加载原理二Loader的load加载配置文件FilteredPropertySource的applyinitializeProfiles遍历profiles队列isDefaultProfileload加载文件getSearchLocations获取搜索路径getSearchNames...原创 2020-04-24 12:11:49 · 749 阅读 · 1 评论 -
Spring Boot 2.2.6 源码之旅五十ConfigFileApplicationListener配置文件加载原理一
Spring Boot 2.2.6 源码之旅五十ConfigFileApplicationListener配置文件加载原理一配置文件加载原理ConfigFileApplicationListener何时加载配置文件ConfigFileApplicationListener的onApplicationEnvironmentPreparedEventloadPostProcessorsEnvironm...原创 2020-04-24 12:11:23 · 1517 阅读 · 1 评论 -
Spring Boot 2.2.6 源码之旅四十九@ConfigurationProperties原理二
Spring Boot 2.2.6 源码之旅四十九@ConfigurationProperties原理二简单流程ConfigurationPropertiesBindingPostProcessor的postProcessBeforeInitialization初始化之前处理ConfigurationPropertiesBean的getConfigurationPropertiesBean的get...原创 2020-04-23 23:05:58 · 655 阅读 · 2 评论 -
Spring Boot 2.2.6 源码之旅四十八@ConfigurationProperties原理一
Spring Boot 2.2.6 源码之旅四十八@ConfigurationProperties原理一简单流程@ConfigurationProperties例子@EnableConfigurationPropertiesEnableConfigurationPropertiesRegistrar的registerInfrastructureBeans注册基础beanConfigurationP...原创 2020-04-23 23:05:23 · 871 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅四十七@Value原理详解
Spring Boot 2.2.6 源码之旅四十七@Value原理详解@ValueQualifierAnnotationAutowireCandidateResolver的getSuggestedValue@Value这个应该基本都用过,直接在属性上用的多,其实方法上也可以用,这个相对简单,先说这个,来个例子,我在name属性上用了,然后在applyName方法上也用了,先不管那到底结果是怎么...原创 2020-04-23 23:04:34 · 2788 阅读 · 1 评论 -
Spring Boot 2.2.6 源码之旅四十六SpringMVC源码细节之异常处理四
Spring Boot 2.2.6 源码之旅四十六SpringMVC源码细节之异常处理四自定义全局异常处理原理自定义全局异常处理首先创建一个异常解析器,实现HandlerExceptionResolver接口即可,这里异常视图是error1。视图文件error1.html:定义一个配置类,实现WebMvcConfigurer接口,覆盖configureHandlerExceptionR...原创 2020-04-17 18:35:41 · 269 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅四十五SpringMVC源码细节之异常处理三
Spring Boot 2.2.6 源码之旅四十五SpringMVC源码细节之异常处理三自定义页面自定义异常处理方法自定义页面我们自定义一个错误页面吧,比如我想用Thymeleaf来渲染,那得导入这个包,然后我们知道错误错误视图名字叫做error,所以得有这样一个页面,创建一个error.html放在resources/templates/下:内容就是:这些属性哪里来的,debug里看...原创 2020-04-17 18:35:19 · 283 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅四十五SpringMVC源码细节之异常处理二
Spring Boot 2.2.6 源码之旅四十五SpringMVC源码细节之异常处理二继续抛异常继续抛异常继续上篇的,异常没法被异常解析器处理,继续抛出:拦截器处理完后继续抛出:FrameworkServlet封装成嵌套的NestedServletException继续抛:不过下面会打印信息:内部会打印:一路抛到org.apache.catalina.core.Stand...原创 2020-04-17 18:34:55 · 291 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅四十四SpringMVC源码细节之异常处理一
Spring Boot 2.2.6 源码之旅四十四SpringMVC源码细节之异常处理一通常的异常处理是否能解析异常ExceptionHandlerExceptionResolver的shouldApplyTodoResolveHandlerMethodException处理ResponseStatusExceptionResolver的处理DefaultHandlerExceptionResol...原创 2020-04-17 18:34:29 · 362 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅四十三SpringMVC源码细节之BeanNameUrlHandlerMapping处理器
Spring Boot 2.2.6 源码之旅四十三SpringMVC源码细节之BeanNameUrlHandlerMapping处理器BeanNameUrlHandlerMapping是什么BeanNameUrlHandlerMapping初始化AbstractDetectingUrlHandlerMapping的detectHandlersBeanNameUrlHandlerMapping的de...原创 2020-04-17 18:34:02 · 399 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅四十二SpringMVC源码细节之SimpleUrlHandlerMapping静态资源处理器二
Spring Boot 2.2.6 源码之旅四十二SpringMVC源码细节之SimpleUrlHandlerMapping静态资源处理器二获取资源解析资源资源是否可读AbstractFileResolvingResource的isReadable写出资源获取资源@Nullable protected Resource getResource(HttpServletRequest reque...原创 2020-04-16 23:12:47 · 482 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅四十一SpringMVC源码细节之SimpleUrlHandlerMapping静态资源处理器一
Spring Boot 2.2.6 源码之旅四十一SpringMVC源码细节之SimpleUrlHandlerMapping静态资源处理器一静态资源如何访问EnableWebMvcConfiguration的resourceHandlerMappingResourceHandlerRegistry的resourceHandlerMapping实验静态资源如何访问可以直接访问静态资源,因为有Si...原创 2020-04-16 23:12:25 · 972 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅四十SpringMVC源码细节之深入数据绑定三
Spring Boot 2.2.6 源码之旅四十一SpringMVC源码细节之深入数据绑定三验证请求参数跟类方法匹配结论绑定applyPropertyValues验证请求参数跟类方法匹配我把Dog类方法的一些属性名改了:继续按方法的名字去掉前缀发送:结果可以:那我把方法名字改下,后面都加1:结果这两个参数没绑定:结论参数绑定跟方法的匹配,而且需要有set方法。比如setB...原创 2020-04-16 23:12:01 · 366 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅四十SpringMVC源码细节之深入数据绑定二
Spring Boot 2.2.6 源码之旅四十SpringMVC源码细节之深入数据绑定二bindRequestParameters绑定请求参数bindRequestParameters绑定请求参数doBind准备绑定checkFieldDefaults先进行属性前缀删除getPropertyAccessor获取属性访问器getInternalBindingResult获取绑定结果getPrope...原创 2020-04-16 23:11:37 · 547 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅三十九SpringMVC源码细节之深入数据绑定一
Spring Boot 2.2.6 源码之旅三十九SpringMVC源码细节之深入数据绑定一数据绑定进行数据绑定创建和初始化WebDataBinder数据绑定前面说了模型方法调用,里面涉及数据转换和数据绑定,但是这里我准备用一个处理器方法来说数据绑定,比较好理解点。请求信息:绑定方法:进行数据绑定我们就拿第一个参数Dog来说,前面会进行属性的创建,一个空的Dog对象,准备进行绑定...原创 2020-04-16 23:11:12 · 425 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅三十八SpringMVC源码细节之深入模型方法三
Spring Boot 2.2.6 源码之旅三十八SpringMVC源码细节之深入模型方法三数据转换convertIfNecessary请求参数不存在的情况createAttribute数据转换convertIfNecessary一路调用内部最后到这里:最后抛异常了:这里明显会转换错误,我故意的,如果是数字的话肯定是没问题的。这下次我改改:有了:请求参数不存在的情况cre...原创 2020-04-16 23:10:46 · 376 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅三十七SpringMVC源码细节之深入模型方法二
Spring Boot 2.2.6 源码之旅三十七SpringMVC源码细节之深入模型方法二createAttributeFromRequestValue数据绑定器初始化参数如何符合绑定方法呢数据转换如何判断是否可转换getConverterGenericConversionService的find从所有转换器中寻找getRegisteredConvertercreateAttributeFro...原创 2020-04-16 23:10:12 · 354 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅三十六SpringMVC源码细节之深入模型方法一
Spring Boot 2.2.6 源码之旅三十六SpringMVC源码细节之深入模型方法一模型方法是什么模型方法返回值作为属性放进了模型内模型方法参数中的Model其实就是模型容器里的BindingAwareModelMap模型方法中的@ModelAttribute("xx")属性可以直接在模型里获取ModelAttributeMethodProcessor解析模型里属性存在的情况模型属性不存在...原创 2020-04-16 23:09:43 · 460 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅三十五SpringMVC源码细节之拦截器
Spring Boot 2.2.6 源码之旅三十五SpringMVC源码细节之拦截器执行链结构图拦截器哪里来的这些拦截器干嘛的MyHandlerInterceptor自定义的ConversionServiceExposingInterceptorResourceUrlProviderExposingInterceptor拦截器处理applyPreHandleapplyPostHandletrigg...原创 2020-04-16 23:09:10 · 452 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅三十四SpringMVC源码之DispatcherServlet的处理分发结果
Spring Boot 2.2.6 源码之旅三十三SpringMVC源码之DispatcherServlet的处理分发结果处理大致流程图DispatcherServlet的processDispatchResultrenderresolveViewName总结简单处理大致流程图DispatcherServlet的processDispatchResult前面讲了处理器适配求怎么处理请求返回...原创 2020-04-16 23:08:38 · 429 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅三十三SpringMVC源码之RequestMappingHandlerAdapter方法调用原理六
Spring Boot 2.2.6 源码之旅三十三SpringMVC源码之RequestMappingHandlerAdapter方法调用原理六ModelFactory的findSessionAttributeArguments寻找session属性参数值SessionAttributesHandler的retrieveAttributeServletInvocableHandlerMethod的...原创 2020-04-16 23:08:11 · 590 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅三十二SpringMVC源码之RequestMappingHandlerAdapter方法调用原理五
Spring Boot 2.2.6 源码之旅三十二SpringMVC源码之RequestMappingHandlerAdapter方法调用原理五DefaultDataBinderFactory的createBinderInitBinderDataBinderFactory的initBinderisBinderMethodApplicable是否匹配调用方法ModelAndViewContainer...原创 2020-04-15 23:06:12 · 805 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅三十一SpringMVC源码之RequestMappingHandlerAdapter方法调用原理四
Spring Boot 2.2.6 源码之旅三十一SpringMVC源码之RequestMappingHandlerAdapter方法调用原理四如何匹配参数supportsParameterPathVariableMethodArgumentResolverModelAttributeMethodProcessorRequestResponseBodyMethodProcessorRequestH...原创 2020-04-15 23:05:20 · 459 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅三十SpringMVC源码之RequestMappingHandlerAdapter方法调用原理三
Spring Boot 2.2.6 源码之旅三十SpringMVC源码之RequestMappingHandlerAdapter方法调用原理三ModelFactory的initModel初始化模型invokeModelAttributeMethods调用模型方法getNextModelMethod获取下一个模型方法InvocableHandlerMethod的invokeForRequestget...原创 2020-04-15 23:04:41 · 733 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅二十九SpringMVC源码之RequestMappingHandlerAdapter方法调用原理二
Spring Boot 2.2.6 源码之旅二十九SpringMVC源码之RequestMappingHandlerAdapter方法调用原理二getDataBinderFactoryMethodIntrospector的selectMethods根据条件获取相应方法createInitBinderMethodgetModelFactory获取模型工厂模型方法条件全局的模型方法ModelFacto...原创 2020-04-15 23:04:14 · 612 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅二十八SpringMVC源码之RequestMappingHandlerAdapter方法调用原理一
Spring Boot 2.2.6 源码之旅二十八SpringMVC源码之RequestMappingHandlerAdapter方法调用原理一getDataBinderFactory获取数据绑定工厂接受一个对象接受多个对象解决办法getDataBinderFactory获取数据绑定工厂这个是什么东西,数据绑定,要干嘛呢,其实就是参数的绑定啦,一般的基本都能处理,比如我传个对象。接受一个对象...原创 2020-04-15 23:02:11 · 636 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅二十七SpringMVC源码之DispatcherServlet的getHandlerAdapter
Spring Boot 2.2.6 源码之旅二十七SpringMVC源码之DispatcherServlet的处理器的适配和处理获取处理器适配器适配器模式DispatcherServlet的getHandlerAdapter如何适配RequestMappingHandlerAdapter的supportsHttpRequestHandlerAdapter的supportsSimpleControl...原创 2020-04-15 23:01:40 · 579 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅二十六SpringMVC源码之DispatcherServlet的getHandler二
Spring Boot 2.2.6 源码之旅二十六SpringMVC源码之DispatcherServlet的getHandler二AbstractHandlerMethodMapping的lookupHandlerMethodHandlerMethod的createWithResolvedBeanAbstractHandlerMapping的getHandlerExecutionChain获取执...原创 2020-04-15 23:01:08 · 501 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅二十五SpringMVC源码之RequestMappingHandlerMapping的初始化三
Spring Boot 2.2.6 源码之旅二十五SpringMVC源码之RequestMappingHandlerMapping的初始化三MappingRegistry的一些映射urlLookup一键多值的url和RequestMappingInfo映射nameLookup名字和HandlerMethod映射mappingLookup的RequestMappingInfo和HandlerMeth...原创 2020-04-15 23:00:35 · 1232 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅二十四SpringMVC源码之RequestMappingHandlerMapping的初始化二
Spring Boot 2.2.6 源码之旅二十四SpringMVC源码之RequestMappingHandlerMapping的初始化二RequestMappingHandlerMapping的createRequestMappingInfo创建映射combine合并属性registerHandlerMethodMappingRegistry的registerAbstractHandlerMe...原创 2020-04-14 23:05:34 · 630 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅二十三SpringMVC源码之RequestMappingHandlerMapping的初始化一
Spring Boot 2.2.6 源码之旅二十三SpringMVC源码之RequestMappingHandlerMapping的初始化一RequestMappingHandlerMapping的afterPropertiesSetAbstractHandlerMethodMapping的initHandlerMethods初始化处理器方法getCandidateBeanNamesprocess...原创 2020-04-14 23:05:05 · 687 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅二十二SpringMVC源码之DispatcherServlet的getHandler一
Spring Boot 2.2.6 源码之旅二十二SpringMVC源码之DispatcherServlet的getHandler一基本流程图,方法查看DispatcherServlet的doDispatch的核心方法分析getHandler获取处理器RequestMappingHandlerMapping的getHandlerAbstractHandlerMethodMapping的getHan...原创 2020-04-14 23:04:40 · 619 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅二十一SpringMVC源码之DispatcherServlet初始化三
Spring Boot 2.2.6 源码之旅二十一SpringMVC源码之DispatcherServlet初始化三基本流程图,方法查看initHandlerAdaptersinitHandlerExceptionResolversinitRequestToViewNameTranslatorinitViewResolversinitFlashMapManager基本流程图,方法查看init...原创 2020-04-14 23:03:52 · 540 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅二十SpringMVC源码之DispatcherServlet初始化二
Spring Boot 2.2.6 源码之旅二十SpringMVC源码之DispatcherServlet初始化二基本流程图,方法查看initThemeResolverinitHandlerMappings都是哪来的基本流程图,方法查看initThemeResolver这个跟前面讲initLocaleResolver一样,最后获取默认的。initHandlerMappings这个获取处...原创 2020-04-14 23:03:30 · 457 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅十九SpringMVC源码之DispatcherServlet初始化一
Spring Boot 2.2.6 源码之旅十九SpringMVC源码之DispatcherServlet初始化一基本流程图,方法查看initLocaleResolvergetDefaultStrategyDispatcherServlet的初始化静态代码块DispatcherServlet的组件默认配置getDefaultStrategies基本流程图,方法查看initLocaleReso...原创 2020-04-14 23:02:43 · 602 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅十八SpringMVC源码之web环境初始化四
Spring Boot 2.2.6 源码之旅十八SpringMVC源码之web环境初始化四基本流程图,方便查看TomcatServletWebServerFactory的getWebServerServletWebServerApplicationContext的finishRefreshDispatcherServlet初始化流程图参考initMultipartResolver基本流程图,方便...原创 2020-04-14 23:01:58 · 586 阅读 · 0 评论 -
Spring Boot 2.2.6 源码之旅十七SpringMVC源码之web环境初始化三
Spring Boot 2.2.6 源码之旅十七SpringMVC源码之web环境初始化三基本流程图,方法查看WebServerFactoryCustomizer定制化TomcatWebSocketServletWebServerCustomizer的customizeServletWebServerFactoryCustomizer的customizeTomcatServletWebServer...原创 2020-04-14 23:01:33 · 774 阅读 · 0 评论