进阶SpringBoot之 Web 静态资源导入

news2024/9/22 15:37:22

idea 创建一个 web 项目

新建 controller 包下 Java 类,用来查验地址是否能成功运行

package com.demo.web.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
    @GetMapping("/hello")
    public String hello() {
        return "Hello World";
    }
}

初始 resources 目录下

static 包下放静态资源

templates 包下放模板

分析源码:

双击 shift 搜索 WebMvcAutoConfiguration,找到 addResourceHandlers 方法

可以看到 getWebjarsPathPattern() 方法路径 classpath:/META-INF/resources/webjars/

        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            if (!this.resourceProperties.isAddMappings()) {
                logger.debug("Default resource handling disabled");
            } else {
                this.addResourceHandler(registry, this.mvcProperties.getWebjarsPathPattern(), "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 是打包到 JAR(Java Archive)文件中的客户端 Web 库(例如 jQuery 和 Bootstrap)

pom.xml 导入依赖:

        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>jquery</artifactId>
            <version>3.7.1</version>
        </dependency>

导入成功

点进 getStaticPathPattern() 获得静态资源的路径方法,/** 表示当前目录下全都识别

private String staticPathPattern = "/**";

WebMvcProperties.class:

以下目录都能访问

 

resources 目录下新建一个 public 包,写个 1.js,随便写个 hello

启动后直接访问 localhost:8080/1.js,显示 hello

总结:

在 SpringBoot 中,可以使用以下方式处理静态资源:

1. webjars

2. public

3. static(默认)

4. /**

5. resources

其中,优先级顺序:

resources > static > public

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1997072.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何在linux系统上部署nginx

1&#xff09;首先去 nginx.org/download 官网下载你所需要的版本 我这里是下载的 nginx-1-23-3.tar.gz 2&#xff09;然后执行 yum -y install lrzsz 安装文件上传软件 执行 rz 选择你下载nginx的位置进行上传 yum -y install lrzsz 3&#xff09;执行 tar -zxvf nginx-1.23…

《RT-DETR》论文笔记

原文出处 [2304.08069] DETRs Beat YOLOs on Real-time Object Detection (arxiv.org)https://arxiv.org/abs/2304.08069 原文笔记 What DETRs Beat YOLOs on Real-time Object Detection 1、设计了一种高效的混合编码器&#xff0c;通过解耦尺度内交互和跨尺度融合来提高…

保障速度与安全合规的前提下,如何传文件到国外?

伴随着经济全球化&#xff0c;数据跨境活动日益频繁&#xff0c;数据出境场景越来越多&#xff0c;防范数据出境安全风险&#xff0c;保障数据依法有序自由流动成为我国关注的重要方面。涉及数据出海的行业多种多样&#xff0c;像跨国运营、全球研发、金融服务等领域的企业都涉…

音乐制作工具:Studio One 6 (WinMac)

Studio One 6是由PreSonus公司开发的一款专业音乐制作软件&#xff0c;它提供了丰富的功能&#xff0c;以满足音乐创作、录制、混音和母带处理的需求。 Studio One 6以其人性化的用户界面、强大的音频性能、以及丰富的功能&#xff0c;成为了音乐制作领域中一个非常受欢迎的选择…

JAVA练习(五)对象封装

选择题 1、【static使用】 如果有以下程序片段&#xff1a; public class Some{private Some some;private Some(){}public static Some create(){if(some null){some new Some();}return some;} }以下描述哪个正确&#xff1a; A、编译错误 B、客户端必须使用new Some()产…

政务数据共享交换平台的逻辑架构

政务数据共享交换平台基于主流大数据技术和政务数据共享交换规范&#xff0c;提供大数据工作门户、工单系统、资源目录管理平台、数据交换平台和API管理平台&#xff0c;如 政务数据共享交换平台主要包括大数据工作门户、数据资源目录管理平台、共享交换管理平台、API管理平台、…

Python07:循环结构 --> for-in循环

如果循环次数已经确定&#xff0c; for循环 """ eg05 - 循环结构 --> for-in循环Author: mimo_yy Date: 2024/5/15 """ # 如果循环次数已经确定 for循环 for i in range(100): # 产生0到100范围的整数&#xff0c;从0开始取数&#xff0c;1…

【Impala】学习笔记

Impala学习笔记 【一】Impala介绍【1】简介&#xff08;1&#xff09;简介&#xff08;2&#xff09;优点&#xff08;3&#xff09;缺点 【2】架构&#xff08;1&#xff09;Impalad&#xff08;守护进程&#xff09;&#xff08;2&#xff09;Statestore&#xff08;存储状态…

【智能控制】第8章 典型神经网络 ,单神经元网络,BP神经网络,RBF神经网络,Hopfield神经网络(北京航天航空大学)

目录 第8章 典型神经网络 1. 单神经元网络 2. BP神经网络 3. RBF神经网络 4. Hopfield神经网络 第8章 典型神经网络 根据神经网络的连接方式&#xff0c;神经网络可分为三种形式&#xff1a;前馈型神经网络、反馈型神经网络和自组织网络&#xff0c;。典型的前馈型神经…

嵌入式边缘计算软硬件开发实训室解决方案

一、 引言 随着5G通信技术、人工智能算法和大数据分析方法的迅猛发展&#xff0c;物联网(IoT)设备的数量正以前所未有的速度增长&#xff0c;这些设备每天产生着海量的数据。据预测&#xff0c;到2025年&#xff0c;全球将有超过750亿个连接的IoT设备。这些设备不仅包括常见的智…

ArcGIS基础:标注转注记及简单处理

注记是一个静态的标签图层&#xff0c;能够独立的保存为文件&#xff0c;并且具有计算功能&#xff1b; 标注是一个动态的标签图形&#xff0c;无法以文件的形式进行存储和计算&#xff1b; 2者各有优势和劣势&#xff0c;根据具体需求进行选择 需要注意的是注记要存储在GDB…

Spring-MyBatis整合:No qualifying bean of type ‘XXX‘ available: ...

1.看一下核心配置中有没有导入myBatis配置 2.看一下service和dao有没有相应注解 3.看一下MyBatisConfig中有没有对sqlSessionFactory和mapperScannerConfigurer注释成bean对象以及有没有配置映射文件路径

天机学堂 第七天 积分系统

签到 签到最核心的包含两个要素&#xff1a; 谁签到&#xff1a;用户id 什么时候签的&#xff1a;签到日期 同时要考虑一些功能要素&#xff0c;比如&#xff1a; 补签功能&#xff0c;所以要有补签标示 按照年、月统计的功能&#xff1a;所以签到日期可以按照年、月、日分…

2024年TI杯E题-三子棋游戏装置方案分享-jdk123团队-第一弹赛题的选择与前期方案的准备

赛前准备 本来我们团队前几个月的准备都在小车上&#xff0c;赛前也完成了 STM32,树莓派4B&#xff0c;Openmv等几款常见主控板来对小车完成基本的模块封装控制。我们团队的大部分精力以及预算都准备在了小车上面。 赛题选择 由于在赛题公布的的那一天&#xff0c;我们发现H…

张邱建 百鸡问题 python 求解

“百鸡问题”是一个著名的古典数学问题&#xff0c;来源于中国古代数学著作《张邱建算经》。问题是这样的&#xff1a;公鸡每只5钱&#xff0c;母鸡每只3钱&#xff0c;小鸡3只1钱&#xff0c;用100钱买100只鸡&#xff0c;问公鸡、母鸡、小鸡各有多少只&#xff1f; from sym…

【学习笔记】卫星网络(NTN)的窄带物联网(NB-IoT)/增强型机器类型通信(eMTC)研究 -- 3GPP TR 36.763(一)

引言 在RAN#86会议上&#xff0c;针对物联网非陆地网络&#xff08;IoT NTN&#xff09;批准了一个新的研究项目&#xff0c;并在RAN#91中进行了修订[4]。在RAN#91中&#xff0c;有一封关于[91E][42][NTN_IoT_Roadmap]的电子邮件讨论&#xff0c;其中包括主持人的总结和GTW输入…

NOI Linux 2.0 的安装说明以及使用指南

关于 NOI Linux 2.0 NOI Linux 是 NOI 竞赛委员会基于 Ubuntu 操作系统开发的一款 Linux 桌面发行版&#xff0c;是一套免费的、专门为信息学奥林匹克竞赛选手设计的操作系统&#xff0c;是 NOI 系列赛事指定操作系统&#xff0c;适用于常见笔记本电脑和桌面电脑。 新建虚拟机…

lvs加keepalive高可用集群

lvs集群当中的高可用架构只是针对调度器的高可用 基于vrrp来实现调度器的主和备 高可用的HA架构 主调度器和备调度器&#xff08;多台&#xff09; 在主调度器正常工作的时候&#xff0c;备完全处于冗余状态&#xff08;待命&#xff09;&#xff0c;不参与集群的运转&…

深入解析Nginx限流策略:如何高效控制访问频率

摘要&#xff1a;本文将详细介绍Nginx限流模块的使用方法&#xff0c;包括基于IP地址的限流、基于并发连接的限流以及如何应对突发流量。通过实际案例&#xff0c;帮助读者掌握Nginx限流策略&#xff0c;确保服务器在高并发场景下的稳定运行。 一、引言 在高并发场景下&#x…

Vscode下ESP32工程函数定义无法跳转

1.删除.vscode 2.按下 ctrlshiftp&#xff0c;搜索 ESP-IDF:Add vscode Configuration Folder