【spring boot】第3篇:spring boot 进行 web 开发
spring boot 对 web 静态资源的管理
经过前两篇文章我们知道spring boot最大的功能就是自动配置。主要是通过以下两个类实现该功能:
- xxxxAutoConfiguration :帮我们给容器中自动配置组件
- xxxxProperties : 配置类来封装配置文件的内容
进行web应用开发的时候,也是需要这两个类来给我们自动配置,这两个类是:WebMvcAutoConfiguration
和 ResourceProperties
,通过它们来管理一些静态资源。
WebMvcAutoConfiguration
是如何映射静态资源的呢
以jar包的方式引入静态资源
(1) 什么是以jar包形式管理静态资源呢?
我们进行web项目开发时,经常会用到 jquery.js ,以前的做法是把 jquery 源文件放到项目的类路径资源文件中,现在可以不用这么做,可以以jar包的形式引入到项目中:访问webjar的官网:https://www.webjars.org/,找到 jquery ,然后引入到 pom 文件中
(2) 那当web项目启动时,是如何找 jquery 的呢?看源码 WebMvcAutoConfiguration 中有一个 addResourceHandlers 方法:
红色线框中的这段代码告诉我们如果项目路径 classpath:/META-INF/resources/webjars/ 存在,先去这里找静态资源文件。
然后可以通过:localhost:8080/webjars/jquery/3.3.1-1/jquery.js 访问静态资源
项目的资源文件夹中管理静态资源文件
如果我们的项目没有通过webjar的形式引入静态资源文件,我们只能去类路径下的资源文件夹中找静态资源了,看 WebMvcAutoConfiguration
的 addResourceHandlers
方法
this.resourceProperties.getStaticLocations() 是什么?
表示我们可以去以下路径中找资源文件:
classpath:/META‐INF/resources/
classpath:/resources/
classpath:/static/
classpath:/public/
spring mvc 的自动配置
spring boot 默认对 spring mvc做了如下配置
- ContentNegotiatingViewResolver and BeanNameViewResolver
- 默认支持静态资源文件夹,webjar形式访问静态资源
- 自动注册了Converter, GenericConverter 和 Formatter
- 默认支持 HttpMessageConverters
- 默认支持 MessageCodesResolver
- 默认使用 ConfigurableWebBindingInitializer
扩展spring mvc
自定义一个配置类(@Configuration),该配置类是 WebMvcConfigurer 接口的实现类,且该配置类不能使用 @EnableWebMvc 标注
spring boot对spring mvc的自动配置介绍
【spring boot】第3篇:spring boot 进行 web 开发相关推荐
- win7 x64 基于spring boot+elasticsearch+Redis+mysql+mybatis进行搜索引擎web开发--爬取IThome热评(一)
因为工作需要,我准备在win7 x64系统上基于springboot +elasticsearch+redis搭建全文索引服务器. 1. elasticsearch安装比较方便,直接去官网下载了ela ...
- spring cloud学习进阶篇:Spring Cloud Sleuth + Zipkin 实现分布式跟踪解决方案
2019独角兽企业重金招聘Python工程师标准>>> 简述 使用 spring cloud 用到最多的是各种rest服务调用,Twitter的Zipkin 是一种实现分布式跟踪解决 ...
- python 框架和 spring mvc_Django和Spring MVC,该选择哪个框架进行Web开发学习?
不邀自来,仅仅从我的经验来说(一年安卓开发,两年 Django 开发),我是比较推荐 Django 的. 项目完整介绍初步开发的书要么很老,要么很罕见少,我没看见过.其实刷官网并且查 Github 的 ...
- Spring全家桶第一篇--认识全家桶
Spring全家桶第一篇--认识全家桶 前言 什么是SPRING全家桶 前言 打算更新一下这两年来接触到的SPRING WEB方面的知识,此篇开搞.不定时更新 什么是SPRING全家桶 官网:http ...
- Spring核心技术原理-(2)-通过Web开发演进过程了解一下为什么要有Spring AOP?
上一篇: Spring核心技术原理-(1)-通过Web开发演进过程了解一下为什么要有Spring? 上一篇从Web开发演进过程的一个侧面简述了一下为什么会有Spring?事实上只介绍了为什么会有Spr ...
- 54. spring boot日志升级篇—logback【从零开始学Spring Boot】
在<44. Spring Boot日志记录SLF4J>章节中有关相关的介绍,这里我们在深入的了解下logback框架. 为什么要使用logback ? --在开发中不建议使用System. ...
- spring boot 跨域请求_SpringBoot 系列教程 web 篇之自定义请求匹配条件 RequestCondition...
191222-SpringBoot 系列教程 web 篇之自定义请求匹配条件 RequestCondition 在 spring mvc 中,我们知道用户发起的请求可以通过 url 匹配到我们通过@R ...
- Elasticsearch实战篇——Spring Boot整合ElasticSearch
2019独角兽企业重金招聘Python工程师标准>>> 当前Spring Boot很是流行,包括我自己,也是在用Spring Boot集成其他框架进行项目开发,所以这一节,我们一起来 ...
- spring Boot 2 基础篇 。内含 整合一个spring boot 的 小案例
目录 springBoot2基础篇 前言与开发环境 一.快速创建Boot项目 1.使用spring提供的快速构建 2.基于maven的手动构建 3.在Idea中隐藏指定文件/文件夹 二.SpringB ...
最新文章
- SQL存储过程实现分页查询
- 每天一个linux命令(14):head 命令
- linux /etc/rc.d/目录的详解
- java web netty_基于Netty的非Servlet规范 JavaWeb框架及高性能 Java服务器
- 百度地图SDK v3.6.0以上版本setOnMarkerClickListener 失效的问题解决
- windows下ab的安装和压测
- 推荐系统--矩阵分解(2)
- python图像处理模块_Python图像处理库PIL的ImageEnhance模块使用介绍
- HBuilder实现WiFi调试Android
- c语言指针教学word,C语言中的指针和指针教学
- Maven - Maven3实战学习笔记(2)坐标和依赖
- PASCAL VOC数据集分析及下载、解压
- SNN 脉冲神经网络
- 字节跳动移动架构师学习笔记,Android篇
- 【前端知识点】promise简书-30分钟带你搞懂promise面试必备
- Tableau权限设置方法
- 生产环境centos7 安装mysql 5.7.35
- C语言捉弄人的程序,愚人节怎么捉弄人?愚人节微信红包整人方法大全
- C语言程序设计(理论课)第八章 函数与宏定义
- 单商户商城系统功能拆解16—供应商管理