SpringBoot2
文章平均质量分 81
复习SpringBoot
richest_qi
这个作者很懒,什么都没留下…
展开
-
自定义错误处理
文章目录自定义错误页面@ControllerAdvice和@ExceptionHandler处理全局异常@ResponseStatus和自定义异常自定义HandlerExceptionResolver要自定义错误处理,可以自定义错误页面。@ControllerAdvice和@ExceptionHandler处理全局异常。@ResponseStatus和自定义异常。自定义异常处理解析器:实现HandlerExceptionResolver。自定义错误页面关于自定义错误页面,SpringBoo原创 2022-01-21 11:07:50 · 1071 阅读 · 0 评论 -
错误处理原理(自动配置解析篇)
文章目录DefaultErrorAttributesBasicErrorControllerWhitelabelErrorViewConfigurationDefaultErrorViewResolverConfigurationErrorMvcAutoConfiguration里自动配置了异常处理规则。DefaultErrorAttributesErrorMvcAutoConfiguration往容器中放入了一个DefaultErrorAttributes类型的组件,组件id为errorAttrib原创 2022-01-18 22:06:20 · 787 阅读 · 0 评论 -
错误处理原理(调试篇)
文章目录DispatcherServlet#doDispatchDispatcherServlet#processDispatchResultDispatcherServlet#processHandlerExceptionDispatcherServlet#doDispatchBasicErrorController#errorHtmlDefaultErrorAttributes#getErrorAttributesAbstractErrorController#resolveErrorViewDefau原创 2022-01-18 21:09:11 · 2002 阅读 · 0 评论 -
SpringBoot的错误处理
文章目录错误处理自定义错误页面错误处理关于错误处理,SpringBoot官网有这么一段话:By default, Spring Boot provides an /error mapping that handles all errors in a sensible way, and it is registered as a “global” error page in the servlet container. For machine clients, it produces a JSON r原创 2022-01-18 11:22:26 · 701 阅读 · 0 评论 -
文件上传原理
文件上传解析器原创 2022-01-17 21:56:49 · 535 阅读 · 0 评论 -
单文件与多文件上传
新建Spring项目:demo9,添加依赖:Spring Web、Spring Configuration Processor、Lombok和Thymeleaf。com.example.boot下新建控制器:controller.Demo9Controller。package com.example.boot.controller;import lombok.extern.slf4j.Slf4j;import org.springframework.stereotype.Controller;.原创 2022-01-13 21:30:49 · 671 阅读 · 0 评论 -
拦截器原理
文章目录源码DispatcherServlet#doDispatchDispatcherServlet#getHandlerHandlerExecutionChain#applyPreHandleHandlerExecutionChain#applyPostHandleDispatcherServlet#processDispatchResultDispatcherServlet#renderHandlerExecutionChain#triggerAfterCompletion小结源码Dispatch原创 2022-01-12 21:08:54 · 214 阅读 · 0 评论 -
使用拦截器
如何使用拦截器使用拦截器,两步走即可:自定义拦截器,实现HandlerInterceptor接口;将拦截器放入容器,实现WebMvcConfigurer的addInterceptors方法,并指定拦截规则、放行规则。HandlerInterceptor接口定义如下。public interface HandlerInterceptor { default boolean preHandle(HttpServletRequest request, HttpServletResponse res原创 2022-01-12 15:45:36 · 287 阅读 · 0 评论 -
SpringMVC视图解析原理
文章目录源码解析DispatcherServlet#doDispatchAbstractHandlerMethodAdapter#handleRequestMappingHandlerAdapter#handleInternalRequestMappingHandlerAdapter#invokeHandlerMethodServletInvocableHandlerMethod#invokeAndHandleInvocableHandlerMethod#invokeForRequestHandlerMet原创 2022-01-12 10:53:21 · 676 阅读 · 0 评论 -
Thymeleaf应用实例
新建Spring项目:demo7,添加依赖:Spring Web、Spring Configuration Processor、Lombok和Thymeleaf。自动生成的pom.xml如下,<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thy.原创 2022-01-11 09:22:15 · 790 阅读 · 0 评论 -
Thymeleaf入门
Thymeleaf 是一个现代化的、服务端的Java模板引擎。1、新建Spring项目:demo7,增加依赖:Spring Web、Spring Configuration Processor、Lombok、Thymeleaf。自动生成的pom.xml如下。<dependencies> <dependency> <groupId>org.springframework.boot</groupId>原创 2022-01-10 21:08:54 · 254 阅读 · 0 评论 -
ContentNegotiationStrategy与自定义ContentNegotiationStrategy
文章目录ContentNegotiationStrategy自定义ContentNegotiationStrategyContentNegotiationStrategy//WebMvcConfigurationSupport#mvcContentNegotiationManagerpublic ContentNegotiationManager mvcContentNegotiationManager() { if (this.contentNegotiationManager == null)原创 2022-01-10 16:47:07 · 561 阅读 · 0 评论 -
HttpMessageConverter与自定义HttpMessageConverter
文章目录HttpMessageConverter的定义HttpMessageConverter的实现类自定义消息转换器创建基础项目自定义消息转换器HttpMessageConverter(消息转换器),POJO转JSON之原理解析、内容协商原理(1)都有涉及到,本篇将稍作总结,并实现一个自定义的消息转换器。HttpMessageConverter的定义public interface HttpMessageConverter<T> { boolean canRead(Class<?原创 2022-01-07 15:58:35 · 2416 阅读 · 0 评论 -
内容协商原理(2)
文章目录基于请求头的内容协商内容协商管理器内容协商策略基于请求参数的内容协商本篇继承自内容协商(1),并在此基础上新增了 基于请求参数的内容协商 这一部分。基于请求头的内容协商AbstractMessageConverterMethodProcessor#writeWithMessageConverters方法中进行了内容协商的过程。获取浏览器支持接受的内容类型;获取服务器能够生产的内容类型;筛选出 浏览器既支持接受,服务器也能够生产 的内容类型;对筛选出的内容类型进行排序;从筛选出的且排原创 2022-01-07 10:28:47 · 411 阅读 · 0 评论 -
内容协商原理(1)
文章目录将Person类转换为JSON1. RequestResponseBodyMethodProcessor#handleReturnValue2. AbstractMessageConverterMethodProcessor#writeWithMessageConverters3. AbstractGenericHttpMessageConverter#write4. AbstractJackson2HttpMessageConverter#writeInternal将Person类转换为XML本原创 2022-01-06 15:32:53 · 541 阅读 · 0 评论 -
POJO转JSON之原理解析
相似文章有:SpringBoot内置的jackson和lombok的使用、HttpMessageConverter。首先,新建spring项目:demo4,且添加依赖:Spring Web和lombok。spring-boot-starter-web>spring-boot-starter-json>jackson jar,依赖关系如下。java目录下新建包com.example.boot,并在该包下新建类:bean.Person和bean.Pet,如下。package com.exa原创 2022-01-05 21:40:27 · 1331 阅读 · 0 评论 -
IDEA查看源码时希望看到的是.java,而不是.class
IDEA查看源码时希望看到的是.java,而不是.class,只需要:File>Settings,Maven>Importing,勾选Sources、Documentation。Download Sources 或 Download Documentation。原创 2022-01-05 19:59:42 · 878 阅读 · 0 评论 -
使用实体类获取请求参数之原理解析
使用实体类接收请求参数,在SpringMVC获取请求参数这篇博文中介绍过,本篇主要解析原理。看实例先。新建一个spring项目:demo4。java目录下新建controller类com.example.boot.controller.Demo4Controller。package com.example.boot.controller;import com.example.boot.bean.Person;import org.springframework.stereotype.Contr原创 2022-01-04 21:24:44 · 1819 阅读 · 1 评论 -
Map、Model原理
本篇内容与参数解析原理、域对象数据共享 有较多重复,就算是复习吧,夯实基础。首先,新建spring项目:demo4。然后,java目录下创建控制器类Demo4Controller。package com.example.boot.controller;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.an原创 2022-01-04 14:27:28 · 383 阅读 · 0 评论 -
参数解析原理
文章目录1. DispatcherServlet#doDispatch2. AbstractHandlerMethodAdapter#handle3. RequestMappingHandlerAdapter#handleInternal4. RequestMappingHandlerAdapter#invokeHandlerMethod5. ServletInvocableHandlerMethod#invokeAndHandle6. InvocableHandlerMethod#invokeForReq原创 2021-12-31 15:17:47 · 531 阅读 · 0 评论 -
注解@MatrixVariable
使用注解@MatrixVariable获取矩阵变量。使用查询字符串先看个 请求路径占位符/{xxx}、@PathVariable、@RequestParam的例子。新建Spring项目:demo4,新建控制器com.example.boot.controller.Demo4Controller,如下,@RestControllerpublic class MetrixController { @GetMapping("/person/{path}") public Map<S原创 2021-12-31 13:11:57 · 945 阅读 · 1 评论 -
常用参数注解
文章目录@PathVariable@RequestHeader@RequestParam@CookieValue@RequestBody本篇内容与 SpringMVC获取请求参数、SpringMVC获取请求体这两篇文章内容有重复,就当是复习总结了。首先,新建Spring项目:demo4,并添加依赖Lombok、Spring Configuration Processer和Spring Web。新建控制器com.example.boot.controller.Demo4Controller,内容如下。原创 2021-12-31 08:35:12 · 2396 阅读 · 2 评论 -
请求映射原理
文章目录1. DispatcherServlet#doDispatch2. DispatcherServlet#getHandler3. AbstractHandlerMapping#getHandler4. AbstractHandlerMethodMapping#getHandlerInternal5. AbstractHandlerMethodMapping#lookupHandlerMethodDispatcherServlet>AbstractHandlerMapping>Abst原创 2021-12-30 15:56:46 · 257 阅读 · 0 评论 -
REST使用与原理
文章目录本篇和RESTFul与RESTFul案例这篇文章有很多重复的地方,就当是复习吧。REST(Representational State Transfer,表述性状态转移)是一种架构风格,它使用HTTP请求方式动词表示对资源的操作。具体看下面的例子吧。新建Spring项目:demo3。新建时添加3个依赖:Lombok、Spring Configuration Processor和SpringWeb。项目新建好后,自动生成的pom.xml如下所示。另外,将自动生成的配置文件applic原创 2021-12-29 22:33:49 · 552 阅读 · 0 评论 -
静态资源原理和欢迎页原理
关于静态资源原理和欢迎页原理,答案尽在spring-boot-autoconfigure-2.6.2.jar的org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration这个类里。欢迎页原理@Configuration( proxyBeanMethods = false)@EnableConfigurationProperties({WebProperties.class})public static原创 2021-12-28 21:51:25 · 336 阅读 · 0 评论 -
web开发之静态资源和欢迎页
文章目录静态资源(static content)修改默认资源路径修改默认访问路径欢迎页面(welcome page)新建Spring项目:demo1,如下所示。添加了Lombok、Spring Configuration Processor和Spring Web这3个依赖。自动生成的pom.xml如下所示。<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.原创 2021-12-28 09:39:46 · 628 阅读 · 0 评论 -
yaml配置文件
文章目录基本语法数据类型实例yaml(ml,markup language),是一种标记语言。基本语法key: value,kv之间有空格。大小写敏感。使用缩进表示层级关系。缩进的空格数不重要,只要相同层级的元素左对齐即可。#,表示注释。字符串无需引号(不论单引号或双引号)。数据类型字面量。如date、boolean、string、number,null。k: v对象。k: k1: v1 k2: v2 k3: v3或k: {k1:v1,k原创 2021-12-27 13:39:12 · 586 阅读 · 0 评论 -
SpringBoot自动配置原理
文章目录SpringBoot导入了主程序类所在包及其子包下的所有组件SpringBoot启动时默认给容器加载所有的自动配置类SpringBoot将按需加载自动配置类自动配置DispatcherServlet和MultipartResolver自动配置CharacterEncodingFilterSpringBoot导入了主程序类所在包及其子包下的所有组件把指定包下的所有组件导入进来。把主程序类所在包及其子包下的所有组件导入进来,本例指的是com.example.boot。SpringBoot启动原创 2021-12-24 11:08:29 · 715 阅读 · 0 评论 -
SpringBoot中使用@ConfigurationProperties进行配置绑定
文章目录使用Java读取.properties文件的内容并封装成JavaBean使用SpringBoot的@ConfigurationProperties进行配置绑定@ConfigurationProperties@ConfigurationProperties(prefix = "mycar")使用Java读取.properties文件的内容并封装成JavaBean新建Maven项目:demo1。修改pom.xml,添加依赖。<?xml version="1.0" encoding="U原创 2021-12-22 13:56:20 · 1541 阅读 · 0 评论 -
SpringBoot中使用@ImportResource往容器中添加组件
文章目录使用@Bean往容器中添加组件使用@ImportResource将原生配置文件中的bean注入容器SpringBoot如何将原生配置文件中的bean注册到容器中,使用@ImportResource。使用@Bean往容器中添加组件新建Maven工程:demo1。修改pom.xml,添加依赖。<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"原创 2021-12-21 13:57:22 · 237 阅读 · 0 评论 -
组件注册@Bean与条件装配@Conditional
@Bean给容器注册组件新建Maven工程:hello。修改pom.xml,添加依赖。<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apac原创 2021-12-21 11:19:17 · 661 阅读 · 0 评论 -
SpringBoot使用@Import给容器添加组件
@Bean给容器添加组件新建Maven工程:hello。修改pom.xml,添加依赖。<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apac原创 2021-12-21 11:00:53 · 431 阅读 · 0 评论 -
SpringBoot的注解@Configuration
文章目录@Configuration 或 @Configuration(proxyBeanMethods = true)@Configuration(proxyBeanMethods = false)先看下看看注解@Configuration的定义。package org.springframework.context.annotation;import java.lang.annotation.Documented;import java.lang.annotation.ElementType原创 2021-12-20 21:56:42 · 692 阅读 · 0 评论 -
SpringBoot使用@Bean给容器添加组件
新建Maven项目:helloworld。修改pom.xml,添加依赖。修改后的pom.xml内容如下。<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://m.原创 2021-12-20 15:45:57 · 572 阅读 · 0 评论 -
Spring使用xml给容器添加组件
新建Maven项目:spring项目。修改pom.xml,添加依赖。修改后的pom.xml如下所示。<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mav.原创 2021-12-20 13:53:33 · 149 阅读 · 0 评论 -
SpringBoot的自动配置
文章目录自动配置Tomcat自动配置SpringMVC自动配置web常用功能,如字符编码问题默认扫描主程序类所在包及其子包中的组件各个配置都有默认值按需加载自动配置项SpringBoot的自动配置 实现了自动配置Tomcat自动配置SpringMVC自动配置web常用功能默认扫描主程序及其子包下的组件各个配置都有美人痣按需加载自动配置项以helloworld工程为例。自动配置Tomcat引入spring-boot-starter-web时,自动引入了tomcat依赖:spring-b原创 2021-12-20 11:12:40 · 390 阅读 · 0 评论 -
SpringBoot的starter
SpringBoot官网描述了SpringBoot这么一个特点:Provide opinionated ‘starter’ dependencies to simplify your build configuration(提供自动的starter依赖,以简化构建配置)。进入SpringBoot的参考文档,我们继续来了解下starter。可以看到,SpingBoot中有很多启动器,spring-boot-starter-*,不同的开发场景会使用不同的启动器。比如,spring-boot-star原创 2021-12-17 16:22:57 · 483 阅读 · 0 评论 -
SpringBoot的依赖管理
以下是Maven工程:helloworld的pom.xml。<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0原创 2021-12-17 15:35:48 · 769 阅读 · 0 评论 -
SpringBoot2入门-HelloWorld
文章目录需求实现打包部署需求发送请求/hello,响应“Hello,Spring Boot 2”。实现新建Maven工程:helloworld生成的pom.xml如下,<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"原创 2021-12-16 21:50:45 · 508 阅读 · 0 评论 -
阿里云Maven镜像
settings.xml配置阿里云Maven镜像,如下,<mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/public</url></mirror>...原创 2021-12-16 21:11:49 · 317 阅读 · 0 评论