11、Spring Boot:使用WebJars

什么是WebJars?

WebJars是被打包成JAR文件 (Java Archive)形式的客户端web资源库(例如:jQuery、Bootstrap等)。

 

优点:

  • 使用WebJars技术可以对Java web项目的前端资源(例如:jQuery、Bootstrap、CSS等)进行统一的依赖管理。解决了传统的往静态文件夹下(例如/src/main/resources/static/)直接拷贝*.js、*.css等文件造成的不便于依赖管理的问题。
  • WebJars提供了可以在展示页面(例如JSP)中,对前端资源的引用路径里省略书写版本号的功能。
  • 自动解析引用资源的依赖关系,并且可以通过RequireJS技术自定义导入。

 

官网写的优点:

  • 简单明了的对基于JVM的web应用程序的客户端依赖资源进行管理。
  • 可由基于JVM的构件工具(例如:Maven, Gradle, sbt, 等)下载客户端依赖资源。
  • 清楚的知道你正在使用的客户端依赖资源都有哪些。
  • 自动解析引用资源的依赖关系,并且可以通过RequireJS技术自定义导入。
  • WebJars的JAR包部署在Maven中央仓库上。
  • 由JSDELIVR提供公共CDN支持

 

原理:

任何兼容Servlet 3标准的容器,都会自动把WEB-INF/lib目录中的WebJars的JAR包视作静态资源。

这是因为任何在WEB-INF/lib目录中的JAR包中的META-INF/resources目录中的内容都会自动视作公开的静态资源。

 

使用方法:

1、pom.xml中添加依赖(WebJars的JAR包部署在Maven中央仓库上。)

        <dependency>
             <groupId>org.webjars</groupId>
             <artifactId>jquery</artifactId>
             <version>3.3.1-1</version>
         </dependency>

 

2、在页面中引用

<script src="/webjars/jquery/3.3.1-1/jquery.min.js"></script>

 

测试:

1、新建一个测试TestController:

package com.example.WEB_demo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class TestController
{
     @RequestMapping("/test")
     public String testHello()
     {
        return "test";  
     }
}

 

2、新建一个测试页面test.html:

注意目录应该在:src/main/resources/templates/下

<!DOCTYPE html>
<html>
     <head lang="en">
         <meta charset="UTF-8" />
         <title>写代码的老王</title>
           <script src="/webjars/jquery/3.3.1-1/jquery.min.js"></script>
           <script type="text/javascript">
           function aaa()
           {
               $("#test1").html("<b>Hello world!</b>");
           }
           </script>
     </head>
     <body>
         <p id="test1">测试由WebJars引入的jQuery包是否生效</p>
         <input type="button" onclick="aaa()" value="TEST" />
     </body>
</html>

 

3、启动Spring Boot项目,打开浏览器,访问http://localhost:8080/test/

 

4、点击TEST按钮

 

补充1:

由于在页面引用中使用了版本号做为引用路径的一部分,这违背了WebJars方便版本管理的初衷。因此WebJars为我们准备了忽略版本号引用的方法。

 

1、在pom.xml中添加自动版本管理引用:

        <dependency>
             <groupId>org.webjars</groupId>
             <artifactId>webjars-locator</artifactId>
             <version>0.30</version>
         </dependency>

 

2、在页面中的引用方式改为

<script src="/webjars/jquery/jquery.min.js"></script>

特别注意,只可以删掉目录中的版本号部分,否则关联导入可能无法工作。

 

补充2:

如何知道pom.xml的依赖中version版本写多少?

 

1、打开https://www.webjars.org官网,找到下方的Popular WebJars

找到要引用的框架(也可以在Search框内输入要引用的框架名称),选择合适的版本号,选择合适的Build Tool,然后直接复制生成的引用代码即可。

 

补充3:

如何知道引用地址:

1、在WebJars官网找到引用的框架后,点击最后一列对应的Files

 

2、在打开的页面中观察:

META-INF/resources路径之后的字样就是引用路径。

 

3、可以在项目工程目录的Maven Dependencies下找到导入的jar包,打开观察目录结构:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值