Spring.Boot Web开发初始静态资源处理《课时九》

简介: Spring.Boot Web开发初始静态资源处理《课时九》

Spring-Web开发初始静态资源处理《课时九》了解什么是Webjars和静态资源所放在的位置为什么是这样放的深入源码了解其核心重点在源码上哦!

1 在新建的项目中 Ctrl+N搜索下面的类

要了解的目标信息

package org.springframework.boot.autoconfigure.web.servlet;
//部分代码省略
@AutoConfiguration(
    after = {DispatcherServletAutoConfiguration.class, TaskExecutionAutoConfiguration.class, ValidationAutoConfiguration.class}
)
@ConditionalOnWebApplication(
    type = Type.SERVLET
)
@ConditionalOnClass({Servlet.class, DispatcherServlet.class, WebMvcConfigurer.class})
@ConditionalOnMissingBean({WebMvcConfigurationSupport.class})
@AutoConfigureOrder(-2147483638)
public class WebMvcAutoConfiguration {

2 在进入上面的类后ctrl+r搜索 addResourceHandlers方法

如图所示了解资源增加在哪里

 

//551
//将源码赋值过来
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    //1什么是webjars
            if (!this.resourceProperties.isAddMappings()) {
                logger.debug("Default resource handling disabled");
            } else {
                this.addResourceHandler(registry, "/webjars/**", "classpath:/META-INF/resources/webjars/");
                this.addResourceHandler(registry, this.mvcProperties.getStaticPathPattern(), (registration) -> {
                    registration.addResourceLocations(this.resourceProperties.getStaticLocations());
                    if (this.servletContext != null) {
                        ServletContextResource resource = new ServletContextResource(this.servletContext, "/");
                        registration.addResourceLocations(new Resource[]{resource});
                    }
                });
            }
        }

什么是Webjars  在百度上搜索

打开官网 WebJars - Web Libraries in Jars

Jquery的依赖

复制依赖引入到 Pom.xml文件中

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
<!--        引用jquery的文件依赖-->
        <dependency>
            <groupId>org.webjars.npm</groupId>
            <artifactId>jquery</artifactId>
            <version>3.6.1</version>
        </dependency>
    </dependencies>

然后观察发现多了一个架包

如图所示

结论一:静态资源存放在在:

addResourceHandler(registry, "/webjars/**", "classpath:/META-INF/resources/webjars/");

静态资源还有第二种方式

  this.addResourceHandler(registry, this.mvcProperties.getStaticPathPattern(), (registration) -> {
                    registration.addResourceLocations(this.resourceProperties.getStaticLocations());
                    if (this.servletContext != null) {
                        ServletContextResource resource = new ServletContextResource(this.servletContext, "/");
                        registration.addResourceLocations(new Resource[]{resource});
                    }
this.addResourceHandler(registry, this.mvcProperties.getStaticPathPattern(), (registration) -> {}

点击上面红色标记跳转如图所示

 

静态资源的第二种方式

结论二:/**也可以存放静态资源 找到下面的代码信息往下翻

@ConfigurationProperties("spring.web")
public class WebProperties {
    private Locale locale;
    private WebProperties.LocaleResolver localeResolver;
    private final WebProperties.Resources resources;
    public WebProperties() {
        this.localeResolver = WebProperties.LocaleResolver.ACCEPT_HEADER;
        this.resources = new WebProperties.Resources();
    }
private static final String[] CLASSPATH_RESOURCE_LOCATIONS = new String[]{"classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/"};

如图所示的几个包可以存放静态资源

 

总结:今天说的是静态资源存放位置是依据SpringBoot源码中得来的.要想知道更深的角度必要是要读SpringBoot源码


1.在springboot,我们可以使用以下方式处理静态资源。

webjars 1ocalhost: 8080/webjars/

public, static, /**, resources

localhost : 8080/

2.优先级: resources>static>public

Spring.Boot Web 模板引擎和首页为什么默认的是index.html页面呀《课时十》_星辰镜的博客-CSDN博客

相关文章
|
19天前
|
开发框架 缓存 前端开发
基于SqlSugar的开发框架循序渐进介绍(23)-- Winform端管理系统中平滑增加对Web API对接的需求
基于SqlSugar的开发框架循序渐进介绍(23)-- Winform端管理系统中平滑增加对Web API对接的需求
|
21天前
|
安全 IDE 编译器
深入理解PHP 7的新特性及其对现代Web开发的影响
【7月更文挑战第30天】本文将深入探索PHP 7版本中引入的关键新特性,并分析这些改进如何优化现代Web开发实践。通过对比PHP 5和PHP 7的性能差异,我们将揭示PHP 7如何提升应用响应速度和资源利用效率。此外,本文还将讨论PHP 7对开发者工作流程的影响,包括新的语言特性、错误处理机制以及内置函数的增强,旨在为读者提供全面了解PHP 7所带来的变革性影响。
|
2天前
|
缓存 前端开发 JavaScript
高效开发现代 Web 应用:从前端到后端的最佳实践
在开发现代 Web 应用时,前端和后端技术的选择对项目的性能、可维护性和用户体验至关重要。本文将探讨如何通过现代工具和框架来优化前端和后端开发流程。我们将分析前端技术(如 React 和 Vue.js)与后端技术(如 Node.js 和 Django)的集成,并提供实际案例来展示如何实现高效开发。无论是对新手还是经验丰富的开发者,本指南都提供了宝贵的洞见和实用的技巧,以帮助提高开发效率并构建出色的 Web 应用。
|
6天前
|
开发框架 前端开发 JavaScript
C/S、B/S、Web的介绍(Web应用开发)
这篇文章介绍了C/S(客户端/服务器)和B/S(浏览器/服务器)两种架构,以及Web应用开发的基本原理、客户端和服务器端的应用技术。
C/S、B/S、Web的介绍(Web应用开发)
|
8天前
|
Java API 数据库
【神操作!】Spring Boot打造RESTful API:从零到英雄,只需这几步,让你的Web应用瞬间飞起来!
【8月更文挑战第12天】构建RESTful API是现代Web开发的关键技术之一。Spring Boot因其实现简便且功能强大而深受开发者喜爱。本文以在线图书管理系统为例,展示了如何利用Spring Boot快速构建RESTful API。从项目初始化、实体定义到业务逻辑处理和服务接口实现,一步步引导读者完成API的搭建。通过集成JPA进行数据库操作,以及使用控制器类暴露HTTP端点,最终实现了书籍信息的增删查改功能。此过程不仅高效直观,而且易于维护和扩展。
20 1
|
15天前
|
安全 前端开发 JavaScript
PHP在现代Web开发中的角色和挑战
【8月更文挑战第5天】随着技术的不断进步,PHP作为一门经典的服务器端脚本语言,在现代Web开发中扮演着重要角色。本文将探讨PHP的发展历程、它在当前Web开发环境中的地位、面临的主要挑战以及未来可能的发展方向。
|
22天前
|
安全 API PHP
深入理解PHP 7的新特性及其对现代Web开发的影响
【7月更文挑战第29天】本文将探索PHP 7版本引入的一系列新特性,并分析它们如何革新了现代Web开发。我们将从性能提升、语言特性增强、以及面向对象编程的改进等方面进行详细讨论,旨在为开发者提供一份全面的PHP 7新特性指南,帮助他们更好地利用这些新工具优化和加速Web应用的开发。
|
19天前
|
移动开发 开发框架 小程序
开发H5程序或者小程序的时候,后端Web API项目在IISExpress调试中使用IP地址,便于开发调试
开发H5程序或者小程序的时候,后端Web API项目在IISExpress调试中使用IP地址,便于开发调试
|
22天前
|
安全 编译器 API
深入理解PHP 8的新特性及其对现代Web开发的影响
【7月更文挑战第29天】随着PHP 8的发布,这个广受欢迎的服务器端脚本语言迎来了重大更新。本文将深入探讨PHP 8引入的关键新特性,包括JIT编译器、联合类型、命名参数、匹配表达式以及错误处理改进等,并分析这些变化如何影响现代Web开发实践。我们将通过具体示例和代码片段,展示这些新特性如何提升性能、增强类型安全和支持更简洁的代码编写,同时讨论它们对现有PHP项目的迁移和维护的潜在影响。
24 2