Spring Boot之——Web MVC开发
SpringMVC自动配置概述
目的:掌握SpringBoot对Web MVC的自动化配置支持
解析:
参考官网;介绍如下:
Spring Boot为Spring MVC提供了自动配置,可与大多数应用程序一起很好地工作。
自动配置在Spring的默认值之上添加了以下功能:
- 包含
ContentNegotiatingViewResolver
和BeanNameViewResolver
视图解析器。 - 支持服务静态资源,包括对WebJars的支持。
- 自动注册
Converter
,GenericConverter
和Formatter
。 - 支持
HttpMessageConverters
。 - 自动注册
MessageCodesResolver
国际化。 - 静态
index.html
欢迎页支持。 - 定制
Favicon
网站icon图片支持。 - 自动使用
ConfigurableWebBindingInitializer
bean。
如果要保留这些Spring Boot MVC定制并进行更多的MVC定制(拦截器,格式化程序,视图控制器和其他功能),不用@EnableWebMvc注解。使用 @Configuration
+ WebMvcConfigurer
自定义规则
小结:
- SpringMVC 有了SpringBoot加持,让开发web应用更加的简单。
静态资源支持
目的:
- 了解 SpringBoot对静态资源(js/css/image等)支持
- 能修改原属性配置
讲解:
1、默认情况下:
Spring Boot从类路径中名为/static
(/public
或/resources
或/META-INF/resources
)的目录中或从的根中提供静态内容。
新建一个Maven项目,将图片
下的图片分别放在对应的目录下:
注意:
/META-INF/resources
是两级文件夹
浏览器访问:http://localhost:8080/4.jpg
2、修改默认配置:
1 | spring: |
对应属性配置源码:
浏览器访问:http://localhost:8080/web/4.jpg
小结:
- 约定 优于 配置;
- 配置完成注释即可,实际开发一般不予修改;
拦截器支持
目的:理解SpringBoot对拦截器支持,并且能够独立配置拦截器
步骤:
- 编写MyInterceptor类实现HandlerInterceptor接口
- 拦截器注册到容器中(实现WebMvcConfigurer的addInterceptors)
- 释放静态资源
实现:
MyInterceptor类重写 类中的方法:
1 | package com.itheima.sh.intercepter; |
拦截器注册到容器中(实现WebMvcConfigurer的addInterceptors):
1 | package com.itheima.sh.config; |
小结:
1、定义拦截类,实现HandlerInterceptor;
2、配置拦截规则:
2.1 定义配置类@Configuration,实现WebMvcConfigurer下的addInterceptors方法;
2.2 配置拦截规则;
Servlet、Filter、Listener支持
目的:理解SpringBoot对SpringMVC原生组件的支持
步骤:
1、@ServletComponentScan(basePackages = “com.itheima.sh”) :指定原生Servlet组件都放在那里
2、编写对应的组件
@WebServlet(name=“”, urlPatterns = “/my”):效果:直接响应
@WebFilter(urlPatterns={“/css/*“,“/images/*“})
@WebListener
实现:
1、添加注解支持
2、新建 web 包,将 资料/web
文件夹下代码复制到当前工程
3、启动测试