webjars学习

webjars介绍

官网:WebJars - Web Libraries in Jars

github: WebJars · GitHub

文档:WebJars - Documentation

WebJAR 是一个用于管理Web前端依赖的工具。它允许开发者将特定的客户端库(如JavaScript、CSS等)打包成JAR(Java Archive)文件,并将其包含在Java Web应用程序中。这样做的目的是为了简化依赖管理,使得在不同的Java Web项目中使用相同的客户端库变得更加容易。

WebJARs通常遵循Maven的依赖管理机制,这意味着你可以通过在项目的pom.xml文件中添加相应的依赖来引入WebJAR。一旦添加了依赖,Maven就会自动下载所需的WebJAR文件,并将其包含在构建过程中。

官网截图:

GitHub截图:

WebJars 有四种风格
NPM WebJars
Bower GitHub WebJars
经典 WebJars
Bower 原创 WebJars

Webjar 的关键特点

  1. 兼容性:Webjar 使得在 Java 项目中使用流行的前端库(如 jQuery、Bootstrap、React 等)变得容易。

  2. 版本管理:通过 Maven 或 Gradle,可以轻松地管理这些库的版本。

  3. 依赖管理:Webjar 允许开发者声明对特定前端库的依赖,构建工具会自动处理这些依赖的下载和更新。

  4. 可移植性:Webjar 可以被不同的 Java 应用共享,这提高了代码的可移植性。

  5. 简化部署:所有前端资源都作为 Java 库的一部分被打包,简化了部署过程。

  6. 安全性:使用构建工具管理 Webjar 可以确保使用的是经过验证的、安全的库版本。

WebJars 的结构

WebJars 的目录结构遵循特定的规则,通常位于 JAR 文件的路径下1。

 /META-INF/resources/webjars/${groupId}/${artifactId}/${version} 

如何使用 WebJars

  1. 添加依赖:在项目的 pom.xml 或 build.gradle 文件中添加对应的 WebJar 依赖。
  2. 配置资源路径:在某些情况下,可能需要配置资源路径以确保应用程序可以正确地访问 WebJar 资源。
  3. 访问资源:在 HTML 或 JSP 页面中,通过特定的路径引用 WebJar 资源,如 :
    /webjars/jquery/3.1.1/jquery.min.js3

使用实例:

pom.xml配置
<dependency><groupId>org.webjars</groupId><artifactId>bootstrap</artifactId><!-- 当前最新版本--><version>5.3.3</version>
</dependency>
在springboot项目还会用thymeleaf
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
Thymeleaf的功能
<link href="../asserts/css/bootstrap.min.css" th:href="@{/webjars/bootstrap/5.3.3/css/bootstrap.css}" rel="stylesheet"><link rel="stylesheet" href="/webjars/bootstrap/css/bootstrap.css"  th:href="@{/webjars/bootstrap/5.3.3/css/bootstrap.css}"/>




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

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

相关文章

PHP基于vscode医院安全不良事件管理系统源码(AEMS)前端vue2+element+后端laravel8不良事件上报与闭环管理

PHP基于vscode医院安全不良事件管理系统源码&#xff08;AEMS&#xff09;前端vue2element后端laravel8不良事件上报与闭环管理 医院不良事件上报与管理系统结合现代医院管理思路&#xff0c;遵照PDCA全面质量循环管理方法而设计&#xff0c;并在多家大型三甲医院成熟运用。系统…

C# 排序的多种实现方式

排序是我们编程时的常用操作&#xff0c;实现方式也有很多种&#xff0c;本篇文章列举几种我常用的用法&#xff0c;希望对大家有用&#xff01; 01 数组排序 最常见的排序是对一个数组排序&#xff0c;比如&#xff1a; int[] aArray new int[8] { 18, 17, 21, 23, 11, 31…

设置 kafka offset 消费者位移

文章目录 1.重设kafka消费者位移2.示例2.1 通过 offset 位置2.2 通过时间2.3 设置到最早 1.重设kafka消费者位移 维度策略含义位移Earliest把位移调整到当前最早位移处位移Latest把位移调整到当前最新位移处位移Current把位移调整到当前最新提交位移处位移Specified-Offset把位…

JVM-01

JVM&#xff08;Java虚拟机&#xff09;是Java平台的核心组件之一&#xff0c;它是一个虚拟计算机&#xff0c;可以执行Java字节码文件。JVM解释并执行Java字节码&#xff0c;并提供了其他功能&#xff0c;如内存管理和垃圾回收。 JVM的基本功能包括以下几个方面&#xff1a; …

Spring Cloud Alibaba 网关 Gateway 集成(7)

项目的源码地址 Spring Cloud Alibaba 工程搭建&#xff08;1&#xff09; Spring Cloud Alibaba 工程搭建连接数据库&#xff08;2&#xff09; Spring Cloud Alibaba 集成 nacos 以及整合 Ribbon 与 Feign 实现负载调用&#xff08;3&#xff09; Spring Cloud Alibaba Ribbo…

JavaEE技术之MySql高级-搭建主从复制(主从同步原理、一主多从配置)

文章目录 MySQL主从同步1、MySQL主从同步原理2、一主多从配置2.1、准备主服务器2.2、准备从服务器2.3、启动主从同步2.4、实现主从同步2.5、停止和重置2.6、常见问题问题1问题2 MySQL主从同步 1、MySQL主从同步原理 基本原理&#xff1a; slave会从master读取binlog来进行数据…

Vue3:介绍

Vue 3 相较于 Vue 2 在多个方面进行了改进和优化&#xff0c;主要优势包括但不限于以下几个方面&#xff1a; 响应式系统优化&#xff1a; Vue 3 引入了基于 Proxy 的响应式系统&#xff0c;取代了 Vue 2 中基于 Object.defineProperty 的实现。Proxy 可以直接监听整个对象&…

一文掌握nodejs中的核心概念

1. 事件循环与非阻塞 I/O 概述&#xff1a; 允许 Node.js 在单线程的情况下执行非阻塞 I/O 的机制。 组成部分&#xff1a; 调用栈&#xff1a; 执行同步代码。回调队列&#xff1a; 存放在异步操作完成后等待执行的回调函数。事件循环&#xff1a; 检查调用栈是否为空&…

WHAT - 浏览器缓存机制系列(二)

目录 一、介绍二、强缓存三、协商缓存今天主要介绍 HTTP请求缓存中的强缓存和协商缓存。 一、介绍 浏览器每次发起请求时,会先在浏览器缓存中查找请求的缓存结果和缓存标识。 当浏览器第一次向服务器发起请求后,浏览器缓存肯定是没有对应缓存的,所以向服务器发起请求,服…

AI换人视频制作

AI换人视频制作 举例&#xff1a; 让潘金莲和唐僧一起让奥特曼打孙悟空 工具 需要魔法上网自行百度https://discord.com/invite/viggle接受邀请后进入频道 输入 / 选择mix 选择mix 分别上传对应的图片 和视频 选择 背景设置为 白色 和fintune 为on等待几分钟 搜索 下载对应视…

实现WPF中的数据更新 属性通知界面:INotifyPropertyChanged接口

在WPF (Windows Presentation Foundation) 应用程序中&#xff0c;当数据发生变化时&#xff0c;通常希望UI能够自动更新以反映这些变化。为了实现这一功能&#xff0c;WPF 提供了数据绑定机制&#xff0c;并且配合 INotifyPropertyChanged 接口使用&#xff0c;可以在数据模型…

docker安装与重装

docker安装与重装 docker安装 https://blog.csdn.net/lyqhf153/article/details/79585976 参考上面的方式 cat /etc/issueuname -r uname -acat /proc/versiondf -hyum list docker-ce --showduplicates | sort -r 查看docker-ce的版本列表sudo yum install -y docker 没有…

Mesa3D图形库与NIR(New Intermediate Representation)

Mesa 是一个开源图形库&#xff0c;为 Unix 和 Linux 系统提供了 OpenGL 和 Vulkan API 的实现。它也支持其他图形 API&#xff0c;如OpenCL、OpenGL ES 和 Vulkan。Mesa 项目的目标是为开源社区提供高性能的图形库&#xff0c;使得开源操作系统能够充分利用现代图形硬件。 Me…

containerd的原理及应用详解(一)

本系列文章简介: 随着容器技术的迅猛发展,容器运行时成为了关注的焦点之一。而容器运行时的核心组件之一就是containerd。containerd是一个高度可扩展的容器运行时,它负责管理容器的生命周期、镜像管理以及资源隔离等核心功能。它是由Docker团队开发并开源的,目前已经成为了…

企业活动想联系媒体报道宣传如何联系媒体?

在企业的宣传推广工作中,我曾经历过一段费事费力、效率极低的时期。那时,每当公司有重要活动或新项目需要媒体报道时,我便要一家家地联系媒体,发送邮件、打电话,甚至亲自登门拜访,只为求得一篇报道。然而,这样的过程充满了不确定性和挑战,时常让我感到焦虑和压力山大。 记得有一…

C——单链表

一.前言 我们在前面已经了解了链表中的双向链表&#xff0c;而我们在介绍链表分类的时候就说过常用的链表只有两种——双向带头循环链表和单向不带头不循环链表。下来我来介绍另一种常用的链表——单向不带头不循环链表也叫做单链表。不清楚链表分类的以及不了解双向链表的可以…

【数据结构】第五讲:栈和队列

个人主页&#xff1a;深情秋刀鱼-CSDN博客 数据结构专栏&#xff1a;数据结构与算法 源码获取&#xff1a;数据结构: 上传我写的关于数据结构的代码 (gitee.com) 目录 一、栈 1.栈的定义 2.栈的实现 a.栈结构的定义 b.初始化 c.扩容 d.入栈 e.出栈 f.打印 g.取栈顶元素…

Java中常用类String的构造器与常用方法

Java中常用类String的构造器与常用方法 在Java编程中&#xff0c;String类是一个核心类&#xff0c;用于处理文本数据。掌握String类的构造器和常用方法对于编写涉及文本操作的程序至关重要。本文将为初学者介绍String类的一些常用构造器和常用方法&#xff0c;并通过示例代码…

Git 进行项目开发时新建一个分支作为备份

在使用 Git 进行项目开发时&#xff0c;想要在当前的 master 或其它分支基础上进行代码优化或修改时&#xff0c;并且在优化过程中保留一个当前状态的备份&#xff08;即新建一个分支作为备份&#xff09;&#xff0c;然后继续在 master 分支上开发&#xff0c;你可以按照以下步…

乐观锁、悲观锁、互斥锁、读写锁

乐观锁和悲观锁是两种不同的锁机制&#xff0c;用于在多线程环境下解决资源竞争问题。互斥锁和读写锁是两种常见的锁类型&#xff0c;它们都可以用来实现乐观锁或悲观锁。 乐观锁 是一种无锁机制&#xff0c;它假设在多线程环境下对共享资源的操作不会发生冲突&#xff0c;因…