Spring Boot与Web开发

Spring Boot与Web开发

SpringMVC快速使用
1.基于restful http接口 的CURD
在这里插入图片描述
在这里插入图片描述

2.调用rest http接口
通过RestTemplate调用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.通过postman调用

在这里插入图片描述
通过MockMvc测试
在这里插入图片描述
4.通过swagger调用

  1. 添加依赖
    在这里插入图片描述
  2. 添加swagger配置类
    在这里插入图片描述
    在这里插入图片描述
    注意:访问的地址是:http://localhost:8080/swagger-ui.html
  3. 配置http接口
    在这里插入图片描述
  4. 配置pojo类
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
访问:http://localhost:8080/swagger-ui.html

扩展: 实现通过swagger记录请求日志
在这里插入图片描述
在这里插入图片描述
2.SpringMVC自动配置原理分析
Spring Boot为Spring MVC提供了自动配置,可与大多数应用程序完美配合。
自动配置在Spring的默认值之上添加了以下功能:
包含ContentNegotiatingViewResolver和BeanNameViewResolver。
ViewResolver 都是SpringMVC内置的视图解析器
ContentNegotiatingViewResolver
他并不会解析视图、而是委派给其他视图解析器进行解析
所有视图解析器,都会根据返回的视图名称进行解析
视图 resolveViewName
在这里插入图片描述
在这里插入图片描述
委派给其他视图解析器进行解析:
在这里插入图片描述
BeanNameViewResolver
会根据handler方法返回的视图名称 (xushu), 去ioc容器中到到名字叫aa的一个Bean,并且这个bean要实现了VIew接口
在这里插入图片描述
可以配置一个名字叫aa的视图(VIew)
在这里插入图片描述
由以上代码可以得出结论,它是从Spring IOC容器获得ViewResolver类型Bean,那么我们可以自己定制一个ViewResolver,ContentNegotiatingViewResolver也会帮我们委派解析
在这里插入图片描述
支持提供静态资源。包括对WebJars的支持(在本文档的后面部分中有介绍)。
以前要访问jpg\css、js 等 这些静态资源文件, 需要在web.xml配置 ,在springboot不需要配置,只需要放在约定文件夹中就可以(约定大于配置)
原理:
WebJars: 就是将静态资源放在jar包中进行访问。
3.定制SpringMvc的自动配置
SpringMVC的自动配置类:WebMvcAutoConfiguration

  1. 在大多数情况,SpringBoot在自动配置中标记了很多@ConditionalOnMissingBean(xxxxxxxxx.class); (意
    思就是如果容器中没有,当前的@bean才会生效)。 只需要在自己的配置类中配置对应的一个@Bean就可以覆盖默认自动配置。
    还得结合源码的实际功能进行定制。
    2.通过WebMvcConfigurer进行扩展
    a. 扩展视图控制器
    b. 扩展拦截器
    c. 扩展全局CORS
    在这里插入图片描述
    在这里插入图片描述

  2. Json 开发
    Spring Boot提供了与三个JSON映射库的集成:
    Gson
    Jackson 性能最好
    JSON-B
    Jackson 是我们使用的默认json库
    jsckson的使用
    @JsonIgnore
    进行排除json序列化,将它标注在属性上将不会进行json序列化
    @JsonFormat(pattern = “yyyy-MM-dd hh:mm:ss”,locale = “zh”)
    进行日期格式化
    @JsonInclude(JsonInclude.Include.NON_NULL)
    当属性值为null时则不进行json序列化
    @JsonProperty(“uname”)
    来设置别名

SpringBoot 还提供了@JsonComponent 来根据自己的业务需求进行json的序列化和反序列化
在这里插入图片描述
在这里插入图片描述
3.国际化
SpringBoot

  1. 添加国际化资源文件 resource
    在这里插入图片描述
  2. 配置messageResource 设置国际化资源文件
    a. 在Springboot中提供了MessageSourceAutoConfiguration 所以,我们不需要去配置
    messageResource
    b. 但是它并生效:开启debug=true
    但是他却没有生效
    自动配置类没有生效的原因:
    在这里插入图片描述
    matches:
    在这里插入图片描述
    getMatchOutcome
    只要在这个方法中将返回的ConditionOutcome .match =true 就匹配成功

在这里插入图片描述
getMatchOutcomeForBasename:
在这里插入图片描述
在这里插入图片描述

如果要让它生效
必须保证 在类路径下的messages文件夹中有国际化的资源文件
或者自己配置spring.messages.basename 告诉它资源文件在哪
即在配置文件中加上这句代码:
在这里插入图片描述
只要找到了国际化的属性资源文件那就会设置ConditionOutcome.match=true
当ConditionOutcome.match=true 那么@Conditional(ResourceBundleCondition.class) 就匹配成功
一旦匹配成功那自动配置类就会生效,就会帮我们配置一个meesageSource

在这里插入图片描述
3. 需要去解析请求头中的accept-language 或者 解析url参数中?local=
其实WebMvcAutoConfiguration 类也帮我配置了一个解析请求头中的accept-language 的localResolver

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4. 随意切换本地语言,进行缓存
a. 覆盖原有localeResolver 因为自动配置类中的localeResovler它只会从accept-language中解析

  1. 通过messageResource 获取国际化信息
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    4.统一异常处理
    1.SpringBoot 有统一异常处理自动配置类
    ErrorMvcAutoConfiguration
    它统一异常处理自动配置类
    重要组件

DefaultErrorAttributes
BasicErrorController
DefaultErrorViewResolver 用来解析错误视图页面

BasicErrorController
它其实就是一个处理/error请求的一个控制器
在这里插入图片描述
定制自己的统一异常处理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.@ControllerAdivce

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.SpringBoot的嵌入式Servlet容器
Spring 默认的Servlet容器是:Tomcat, 当前SpringBoot 2.3.6 的版本是对应 tomcat9

在这里插入图片描述
1.嵌入式Servlet容器配置修改
1.通过全局配置文件修改
可以通过server.xxx 来进行web服务配置, 没有带服务器名称的则是
通用配置
通过带了具体的服务器名称则是单独对该服务器进行设置,比如
server.tomcat.xxx 就是专门针对tomcat的配置
在这里插入图片描述
2.通过WebServerFactoryCustomizer的Bean修改
修改server.xxx 配置的相关内容
会跟配置文件形成互补

在这里插入图片描述
2.注册servlet三大组件
servlet listener filter
servlet3.0规范提供的注解方式注册
在这里插入图片描述
1.声明servlet 及映射
在这里插入图片描述
2.加上@ServletComponentScan才会扫描上面3个注解
在这里插入图片描述
在这里插入图片描述
SpringBoot提供的注册
使用ServletRegistrationBean,FilterRegistrationBean以及
ServletListenerRegistrationBean

在这里插入图片描述
3.切换其他嵌入式Servlet容器
Spring Boot包含对嵌入式Tomcat,Jetty和Undertow服务器的支持
tomcat(默认)
Jetty(socket)
Undertow(响应式)
在这里插入图片描述
在这里插入图片描述
5.使用外部Servlet容器
外部servlet容器
服务器、本机 安装tomcat 环境变量…
部署: war—运维—>tomcat webapp startup.sh 启动
开发: 将开发绑定本地tomcat
开发 、 运维 服务器配置 war
内嵌servlet容器:
部署: jar—> 运维—java -jar 启动
使用:

  1. 下载tomcat服务
    2.设置当前maven项目的打包方式
    在这里插入图片描述
    3.让tomcat相关的依赖不参与打包部署 ,因为外置tomcat服务器已经有这些jar包
    在这里插入图片描述
    4 为了让它支持springboot需要加上: 才能启动springboot应用
    在这里插入图片描述
    5 在idea中运行
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值