当前位置: 首页 > news >正文

进阶SpringBoot之 Web 静态资源导入

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.lryc.cn/news/419237.html

相关文章:

  • 【数据结构七夕专属版】单链表及单链表的实现【附源码和源码讲解】
  • 鸿蒙笔记--Socket
  • 安装python+python的基础语法
  • html+css网页制作 国家体育总局2个页面模版(无js)
  • Effective Java学习笔记第27、28条原生态类型和非受检警告
  • javaEE和javaSE
  • Leetcode 17.电话号码的字母组合
  • 位1的个数
  • RPA在政务服务中的挑战与解决方案
  • RabbitMQ docker安装
  • 关于vs调试的一些基本技巧方法,建议新手学习
  • ​MySQL——索引(二)创建索引(2)使用 CREATE INDEX 语句在已经存在的表上创建索引
  • 前端HTML总结
  • 【动态规划】647. 回文子串
  • python-约瑟夫环(赛氪OJ)
  • Less 教程:从入门到精通
  • 【VScode】如何在anaconda虚拟环境中打开vscode项目
  • Flink任务提交流程和运行模式
  • 【机器学习】 Sigmoid函数:机器学习中的关键激活函数
  • Vue+Element Plus后台管理主界面搭建实现
  • JAVA—异常
  • 常见八股面试题:Dubbo 和 Spring Cloud Gateway 有什么区别?
  • k8s分布式存储-ceph
  • Redis cluster集群部署
  • Java泛型的理解
  • Linux 照片图像编辑器
  • 【51单片机仿真】基于51单片机设计的智能六位密码锁(匿*输入/密码修改/警示/保存/恢复/初始密码)源码仿真设计文档演示视频——文末资料下载
  • 【Vue3】组件通信之mitt
  • 状态压缩动态规划——状压dp
  • 【算法】最短路径算法思路小结