springmvc项⽬请求的css和js⽂件不到_SpringBoot2.x⼊门
到项⽬实。。。
第5章 Spring Boot 的Web开发
Web 开发是项⽬实战中⾄关重要的⼀部分,Web开发的核⼼内容主要包括嵌⼊的 Servlet 容器和SpringMVC
Web开发官⽅⽂档:
docs.spring.io/spring-boot/docs/2.0.6.RELEASE/reference/htmlsingle/#boot-features-spring-mvc
5.1 Web开发⽀持
Spring Boot 为 Web 开发提供了 spring-boot-starter-web 启动器作为基本⽀持,为我们提供了嵌⼊的Tomcat 以及 Spring MVC 的依赖⽀持。(参考:l)
也提供了很多不同场景的⾃动配置类,让我们只需要在配置⽂件中指定少量的配置即可启动项⽬。⾃动配置类存储在 spring-boot-autoconfigure.jar 的 org.springframework.boot.autoconfigure 包下。
continue语句java思考⾃动配置原理: ⾃动配置场景 SpringBoot 帮我们配置了什么?是否修改?能修改哪些配置?是否可以扩展?……
⾃动配置类举例:
⽂件名可以看出
1. xxxxAutoConfiguration :向容器中添加⾃动配置组件
2. xxxxProperties :使⽤⾃动配置类 来封装 配置⽂件的内容
SpringMVC配置 : WebMvcAutoConfiguration 和 WebMvcProperties
内嵌 Servlet 容器 : ServletWebServerFactoryAutoConfiguration 和 ServerProperties
上传⽂件的属性 :MultipartAutoConfiguration 和 MultipartProperties
JDBC : DataSourceAutoConfiguration 和 DataSourceProperties
5.2 静态资源的映射规则
对静态资源的映射规则, 可通过分析 WebMvcAutoConfiguration ⾃动配置类得到
5.2.1 webjars 资源映射
在 WebMvcAuotConfiguration.addResourceHandlers() 分析webjars 资源映射
public void addResourceHandlers(ResourceHandlerRegistry registry) {if (!sourceProperties.isAddMappings()) {logger.debug("Default resource hand 1、所有 /webjars/** 请求,都去 classpath:/META-INF/resources/webjars/ ⽬录对应资源⽂件
免费顶级域名注册3、在官⽹打开资源⽂件的依赖配置信息,然后粘贴到 l 中
org.webjarsjquery3.3.1
4、访问 localhost:8080/webjars/jquery/3.3.1/jquery.js 会在下⾯路径 中查
html文件怎么改成exe文件5.2.2 其他静态资源映射
在 WebMvcAuotConfiguration.addResourceHandlers() 分析 访问其他资源映射
public void addResourceHandlers(ResourceHandlerRegistry registry) {if (!sourceProperties.isAddMappings()) {logger.debug("Default resource hand staticPathPattern 处理其他访问的静态路径, 从 WebMVCProperties 构造器中获取到 /**
public WebMvcProperties() {this.localeResolver = WebMvcProperties.LocaleResolver.ACCEPT_HEADER;this.dispatchTraceRequest = false;this.dispatchO ResourceProperties 根据请求查资源⽂件, 从以下 四个路径 中 查( 静态资源⽬录 )
@ConfigurationProperties(prefix = "sources",ignoreUnknownFields = false)public class ResourceProperties {private static final String[] CLASSPAT "classpath:/META-INF/resources/","classpath:/resources/","classpath:/static/","classpath:/public/"
总结:
当接受到 /** 请求访问资源时, 会被映射到下⾯4个类路径下的静态资源⽬录中查
classpath:/META-INF/resources/classpath:/resources/classpath:/static/classpath:/public/
访问 localhost:8080/style.css 会在上⾯四个静态资源路径 中查⽂件
5.2.3 欢迎页映射
在 WebMvcAuotConfiguration.welcomePageHandlerMapping() 分析 欢迎页映射
@Beanpublic WelcomePageHandlerMapping welcomePageHandlerMapping(ApplicationContext applicationContext) {return new WelcomePageHandlerMa getWelcomePage() ⽅法获取 欢迎页⾯ 可存储路径
private Optional getWelcomePage() {String[] locations ====2. 上⾯说的4个静态资源路径加上 "/" 路径getResourceLocations(=====1. 获取上⾯说的4个静态资源路径分析后, 会从 4个静态资源⽬录 + 根路径 / 中 查 index.html 页⾯
uml图箭头含义classpath:/META-INF/resources/classpath:/resources/classpath:/static/classpath:/public//: 当前项⽬根路径下
会在 静态资源⽬录下 与 根路径查 (按该顺序) index.html页⾯; 收到 “/**” 请求映射
properties文件用什么打开访问 localhost:8080/ 会在上⾯5个⽬录中查 index.html 页⾯(因为/也属于 /** )
5.2.4 图标映射
Spring Boot 会在静态资源⽬录下 与 根路径(按该顺序) 查 faicon.ico 页⾯;
如果存在这样的⽂件,Spring Boot 会⾃动将其设置为应⽤图标。
classpath:/META-INF/resources/classpath:/resources/classpath:/static/classpath:/public//: 当前项⽬根路径下
5.3 Thymeleaf 模板引擎
Spring Boot 官⽅不推荐使⽤JSP,因为内嵌的 Tomcat 、Jetty 容器不⽀持以 jar 形式运⾏ JSP。Spring Boot中提供了⼤量模板引擎,
包含 Freemarker、Mastache、Thymeleaf 等。 ⽽ Spring Boot 官⽅推荐使⽤Thymeleaf 作为模板引擎, 因为 Thymeleaf 提供了完
biomass是什么意思美的 SpringMVC 的⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论