SpringBoot-SpringMVC开发总结

Web开发步骤

1、创建SpringBoot应用,选择需要用的模块。
2、SpringBoot默认把这些场景配置好了,只需要在配置文件中指定少量配置。
3、自己编写项目的业务代码。
4、xxxAutoConfiguration自动配置类,帮我们自动向容器中添加组件。
5、XXXProperties属性类,帮我们自动封装配置文件中的内容。

Web模块开发

1、创建SpingBoot项目,选择Web模块。
2、引入webjar的js依赖,可以在网站https://www.webjars.org/找到。

<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>jquery</artifactId>
    <version>3.3.1</version>
</dependency>

3、SpirngBoot对静态资源的路径:http://localhost:8082/webjars/jquery/3.3.1/jquery.js
4、我们自己的资源可以存放的位置查找该资源。

classpath:/META-INF/resources/
classpath:/resources/
calsspath:/static/
classpath:/public/
"/"当前路径的根路径

5、欢迎页是所有静态文件夹下面的index.html文件。
6、可以加入**/favicon.ioc设置我们自己喜欢的图标(网页标签左边的一个图片)。
7、可以通过配置spring.resources.static-location=XXX,YYY,ZZZ(可以多个)来修改静态文件夹位置。

模板引擎

1、SpringBoot推荐使用thymeleaf这个模板引擎,语法简单,功能强大!
2、导入依赖。

<properties>
    <thymeleaf.version>3.0.2.RELEASE</thymeleaf.version>
    <thymeleaf-layout-dialect.version>2.0.4</thymeleaf-layout-dialect.version>
</properties>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

Thymeleaf介绍

和Jsp类似,Thymeleaf是用来开发Web和独立环境项目的服务器端的Java模版引擎。Thymeleaf模板引擎的html页面,默认放在classpath:/templates路径下,可以通过配置修改默认值。

SpringBoot-Web国际化

1、编写国际化properties文件。
2、SpringBoot已经定义好了,管理国际化配置的组件。
3、点击按钮就可以切换语言,首先是在链接上配置好语言参数。
4、自定义,自己的区域信息解析器,并把它配置进容器内即可生效。

Springboot-Web拦截器

1、自己定义拦截器,实现HandlerInterceptHander接口。
2、通过配置类的方式,在WebMvcConfigAdapter组件中加入拦截器。

SpringBoot-SpringMVC日期格式转换器

1、WebMvcAutoConfig自动配置类中,向Spring容器注入Formatter类,默认是按照2009/09/01的格式配置的日期转换器。
2、可以通过添加配置spring.mvc.data-format:yyyy-mm-dd HH:mm:ss来修改默认的日期转换器格式。
3、可以通过前端控制用户输入日期的格式。

SpringBoot-SpringMVC发送PUT类型的请求

1、模板引擎只支持发送POST和GET类型的请求,如果需要发送PUT请求,要做一些调整。
2、WebMvcAutoConfig自动配置类中,会向Spring容器注入HiddenHttpMethodFilter类,它会拦截POST请求,并转换成特殊请求。
3、页面的form必须是POST发送方式,且有一个<input type='hidden' name='_method' value='PUT'>组件。

SpringBoot-SpringMVC错误页面原理

1、SpringBoot应用程序会区别浏览器还是其他软件(如PostMan)的访问,原理参考ErrorMvcAutoConfig类。
2、该类向容器注入了DefaultErrorViewResolver、ErrPageCustomizer、DefaultErrorAttributes、BasicErrorController等组件。
3、一旦系统出现4xx,5xx的错误,ErrPageCustomizer就会生效,定义错误显示规则,默认生成/error请求,可以通过配置修改。
4、一旦产生/error请求,且容器内没有自定义的ErrorHandler类,BasicErrorController就会起作用,它会接受/error请求。
5、BasicErrorController会根据请求头的不同,相应不同的内容。
6、BasicErrorController类中会遍历ErrorViewResolver来解析页面,默认的错误页面由DefaultErrorViewResolver决定。

SpringBoot-SpringMVC定制错误页面

1、通过一个Controller类,标记上ControllerAdvice注解。
2、该类的方法上放上ExceptionHandler注解,这样出现这类型的异常就会走这个方法。

SpringBoot-SpringMVC定制Servlet容器

1、可以修改和server有关的配置,修改端口等。
2、也可以通过EmbedServletContainerCustomizer,来修改容器的配置。

SpringBoot-SpringMVC注册Servlet三大组件

1、新建自己的MyServlet继承HttpServlet,实现doPost和doGet方法。
2、在配置类中,通过Bean注解,向容器中添加ServletRegisterBean,把我们的servelet赋值给这个类。
3、新建自己的MyFilter继承Filter,在配置类中,通过Bean注解,向容器中添加FilterRegisterBean。
4、想容器中添加监听器,也是类似,通过ListenerRegisterBean,注册进该类中。

SpringBoot-SpringMVC切换其他Servlet容器

1、SpringBoot支持Tomcat,Jetty,Undertow,通过修改pom里面的Spring-boot-start-web里面对servlet依赖即可。

原文地址:https://www.cnblogs.com/feiqiangsheng/p/12006328.html