springboot
文章平均质量分 84
scarletchow318
虽然前进得比别人慢,但至少还在坚持前进。
展开
-
【Redis】MISCONF Redis is configured to save RDB snapshots, but currently not able to persist on disk.
MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk.Error creating bean with name 'redisConnectionFactory' defined in class path resource. java.lang.IllegalStateException: Failed to load Application.类文件具有错误的版本原创 2023-03-03 12:57:29 · 4821 阅读 · 0 评论 -
【springboot】HTTPMessageConvertor源码分析原理
承接上一篇文章,还是按照之前的顺序来debug,先进入invokeAndHandle执行方法,可以看到this.returnValueHandlers是所有可以匹配的返回值处理器,通过supportsReturnType方法判断是否支持该类型的返回值后匹配到了目标的ReturnValueHandler,就可以执行它的handleReturnValue方法,也就是上篇文章中文末提到的处理返回值的方法handleReturnValue(),进入最内层的handleReturnValue方法。原创 2022-11-01 21:02:36 · 652 阅读 · 0 评论 -
【springboot】响应处理-数据响应
响应处理又可以分为响应页面和响应数据。响应页面常见于一些单体项目中,主要表现为服务器响应我们发出的请求给我们跳转到对应的页面。响应数据主要见于一些前后端分离的项目,前端向后端发送请求,后端向前端发送JSON数据(或者其他类型的数据,如xml、xlsx、图片音频视频、自定义协议数据等)。handleReturnValue方法处理返回值的逻辑跟之前几篇文章讲(一)请求处理——参数处理的逻辑是一样的,需要根据我们的参数or返回值找到合适的参数or返回值处理器,然后有针对的handleXxx方法处理。原创 2022-10-26 21:47:53 · 1238 阅读 · 0 评论 -
【springboot】自定义Convertor原理(WebDataBinder对应的数据转换器)
上一篇文章中我们提到了WebDataBinder(Web数据绑定器)会将我们的请求参数的值绑定到指定的JavaBean中,原理就是WebDataBinde利用其中的Convertors(124个之多)将请求数据转换成指定的数据类型,再次封装到数据的JavaBean中。无法将String类型的属性(Pet在People中只是以字符串形式存在的)转化(convert)为Pet类型的属性->>无法将value处的属性值集赋给Pet类型的对象。缺乏一个需要自定义的类型转化器将value转给Pet。原创 2022-10-26 12:58:56 · 736 阅读 · 0 评论 -
【springboot】Servlet API参数解析(一)及Model、Map类型源码分析(二)及√自定义参数(POJO类型)(三)
这里的自定义参数解析指的是POJO类型的封装过程。POJO类的封装过程是由ServletModelAttributeMethodProcessor执行的。后面又由ModelAttributeMethodProcessor中的resolveArgument进行核心的执行流程。WebDataBinder(Web数据绑定器)的众多converters将请求参数的值绑定到指定的JavaBean(POJO类对象)中。原创 2022-10-23 11:20:31 · 363 阅读 · 0 评论 -
【springboot】Servlet API参数解析(一)及√Model、Map类型源码分析(二)及自定义参数(三)
印证了(二)中发现的处理多种不同的参数时采用不同的methodProcessor(不同的resolver。这里有一个自学的思路,就是找实现方法时,如果只找到接口的抽象方法,可以ctrl+h(idea中快捷键)查看他与子类的继承or接口的实现关系,找到接口方法的实现类,就可以找到目标实现方法。我们加在方法上的参数Model和Map都是一个东西,因为数据都放到model中,然后最后都会被加到请求域中(request.addAttribute)——>>看源码这么久的意义。原创 2022-10-22 15:04:07 · 434 阅读 · 0 评论 -
【springboot】√Servlet API参数解析(一)及Model、Map类型源码分析(二)及自定义参数(三)
可知Servlet的原生请求是ServletRequestMethodArgumentResolver这个参数解析器来处理。注意:同理可以推得,多debug,试下传递不同类型的参数,前两篇文章提到27中参数解析器那么多,debug了就知道不同的参数解析器对应负责处理的参数是不同的。原创 2022-10-21 21:16:54 · 209 阅读 · 0 评论 -
【springboot】请求处理-源码分析-各种参数类型解析原理
处理请求的参数解析:DispatcherServlet-doDispatch__handler__adapter__参数(注释)解析器__返回值处理器原创 2022-10-21 14:17:06 · 535 阅读 · 0 评论 -
【springboot/spring】请求处理源码分析-请求映射的原理
①springboot自动配置了RequestMappingHandlerMapping。②可以看到springboot是自动配置欢迎页的WelcomePageHandlerMapping。③也可以自定义HandlerMapping。原创 2022-10-20 11:12:12 · 385 阅读 · 0 评论 -
【springboot】请求处理GET/POST/DELETE/PUT的源码分析暨springboot中设置访问首页
还有一个未解之谜就是,在debug的时候我不知道是不是因为controller中一个方法的return处没有打断点,卡了很久找到一个办法:就是先正常run显示首页出来,然后debug再重新run的时候点击表单中的各个请求方式才能正常debug,否则获取不到_method的值。因此,进入前面第一个if时,request.getMethod()的这个getMethod是调用重写后的wrapper的,得到的也会是_method的值(DELETE、PUT、PATCH也有)。可以兼容他们这些方法。原创 2022-10-19 17:11:10 · 777 阅读 · 0 评论 -
【springboot】web场景-静态资源访问及其源码分析原理
要特别留心@EnableConfigurationProperties这种注解,翻译过来就是“保证(自动)配置的属性”,则说明要满足这些属性才能进行(自动)配置,而且这些属性xxx与配置文件中是绑定了的。构造器形参的其中两个刚好是上文的WebMvcProperties和WebProperties属性,则分别获取了跟他们两个绑定的配置文件中spring.mvc和spring.web的值。原创 2022-10-18 21:15:33 · 428 阅读 · 0 评论 -
【Maven】启动Springboot Application两个报错build:Cannot determine build data storage root_错误: 找不到或无法加载主类com.
启动Springboot Application两个报错:①build:Cannot determine build data storage root for project xxx②错误: 找不到或无法加载主类com...原创 2022-10-18 16:59:07 · 3197 阅读 · 0 评论 -
【springboot源码】自动配置
如果进行debug就会发现,向容器中注册的就是我们的包名,注意【AutoConfigurationPackages.PackageImports(metadata)).】getPackageNames()获取的是包名,这里默认为MainApplication(类名不一定是这个)所在的包下(com.boot)。这里有两个属性,都是数组,一个是basePackages={},包含需要自动配置的包;类上只有一条特别的注解,这里@Import引入了Registrar类,看下他是干嘛的。原创 2022-10-17 21:10:14 · 352 阅读 · 0 评论