Web开发
1、SpringMVC自动配置概览
大多场景我们都无需自定义配置
-
内容协商视图解析器和BeanName视图解析器
-
静态资源(包括webjars)
-
自动注册 Converter,GenericConverter,Formatter
-
支持 HttpMessageConverters (后来我们配合内容协商理解原理)
-
自动注册 MessageCodesResolver (国际化用)
-
静态index.html 页支持
-
自定义 Favicon
-
自动使用 ConfigurableWebBindingInitializer ,(DataBinder负责将请求数据绑定到JavaBean上)
-
不用@EnableWebMvc注解。使用 @Configuration + WebMvcConfigurer 自定义规则
-
声明 WebMvcRegistrations 改变默认底层组件
-
使用 @EnableWebMvc+@Configuration+DelegatingWebMvcConfiguration 全面接管SpringMVC
2、简单功能分析
新建项目
2.1、静态资源访问
1、静态资源目录
- 只要静态资源放在类路径下:/
static
/public
/resources
/META-INF
/resources
- 访问 : 当前项目根路径/ + 静态资源名
原理: 静态映射/**。
请求进来,先去找Controller看能不能处理。不能处理的所有请求又都交给静态资源处理器。
静态资源也找不到则响应404页面
改变默认的静态资源路径
spring:
mvc:
static-path-pattern: /res/**
web:
resources:
static-locations: [classpath:/ayan]
2、静态资源访问前缀
默认无前缀
spring:
mvc:
static-path-pattern: /res/**
当前项目 + static-path-pattern + 静态资源名 = 静态资源文件夹下找
3、webjar
自动映射 /webjars/**
https://www.webjars.org/
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>3.5.1</version>
</dependency>
访问地址:http://localhost:8080/webjars/jquery/3.5.1/jquery.js
后面地址要按照依赖里面的包路径
2.2、欢迎页支持
- 静态资源路径下 index.html
可以配置静态资源路径 但是不可以配置静态资源的访问前缀。否则导致 index.html不能被默认访问
spring:
# mvc:
# static-path-pattern: /res/** 这个会导致welcome page功能失效
resources:
static-locations: [classpath:/haha/]
- controller能处理/index
2.3、自定义 Favicon网站图标
favicon.ico 放在静态资源目录下即可。
spring:
# mvc:
# static-path-pattern: /res/** 这个会导致 Favicon 功能失效
资源处理的默认规则
spring:
# mvc:
# static-path-pattern: /res/**
resources:
add-mappings: false 禁用所有静态资源规则
3、请求参数处理
0、请求映射
1、rest使用与原理
- @xxxMapping;
- Rest风格支持(使用HTTP请求方式动词来表示对资源的操作)
- 以前:/getUser 获取用户 /deleteUser 删除用户 /editUser 修改用户 /saveUser 保存用户
- 现在: /user GET-获取用户 DELETE-删除用户 PUT-修改用户 POST-保存用户
- 核心Filter;HiddenHttpMethodFilter
- 用法: 表单method=post,隐藏域 _method=put
- SpringBoot中手动开启
- 扩展:如何把_method 这个名字换成我们自己喜欢的。
spring:
mvc:
hiddenmethod:
filter:
enabled: true #开启页面表单的Rest功能