WebJars能使Maven的依赖管理支持OSS的JavaScript库/CSS库,比如jQuery、Bootstrap等;

WebJars是将Web前端Javascript和CSS等资源打包成Java的Jar包,这样在Java Web开发中我们可以借助Maven这些依赖库的管理,保证这些Web资源版本唯一性。

基本原理如下:

With any Servlet 3 compatible container, the WebJars that are in the WEB-INF/lib directory are automatically made available as static resources.
This works because anything in a META-INF/resources directory in a JAR in WEB-INF/lib is automatically exposed as a static resource.

(1)使用 添加js或者css库
pom.xml

<dependency>  <groupId>org.webjars</groupId>  <artifactId>bootstrap</artifactId>  <version>3.3.7-1</version>
</dependency>
<dependency>  <groupId>org.webjars</groupId>  <artifactId>jquery</artifactId>  <version>3.1.1</version>
</dependency>  

src/main/resources/static/demo.html

<html>  <head>  <script src="/webjars/jquery/3.1.1/jquery.min.js"></script>  <script src="/webjars/bootstrap/3.3.7-1/js/bootstrap.min.js"></script>  <title>WebJars Demo</title>  <link rel="stylesheet" href="/webjars/bootstrap/3.3.7-1/css/bootstrap.min.css" />  </head>  <body>  <div class="container"><br/>  <div class="alert alert-success">  <a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>  Hello, <strong>WebJars!</strong>  </div>  </div>  </body>
</html> 

启动应用后可以看到以下log:

2017-02-09 13:52:48.117  INFO 6188 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  :
Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]

启动应用访问 http://localhost:8080/demo.html

(2)省略版本号

很少在代码中硬编码版本号,所以需要隐藏它

pom.xml添加webjars-locator

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

src/main/resources/static/demo.html

<script src="/webjars/jquery/3.1.1/jquery.min.js"></script>
<script src="/webjars/bootstrap/3.3.7-1/js/bootstrap.min.js"></script>
<title>WebJars Demo</title>
<link rel="stylesheet" href="/webjars/bootstrap/3.3.7-1/css/bootstrap.min.css" /> 

改为

<script src="/webjars/jquery/jquery.min.js"></script>
<script src="/webjars/bootstrap/js/bootstrap.min.js"></script>
<title>WebJars Demo</title>
<link rel="stylesheet" href="/webjars/bootstrap/css/bootstrap.min.css" />

启动应用再次访问 http://localhost:8080/demo.html 结果和上边一样

扩展:

引入的开源JavaScript库/CSS库将会以jar的形式被打包进工程! 
spring-boot-demo1-0.0.1-SNAPSHOT.jar\BOOT-INF\lib

bootstrap-3.3.7-1.jar
└─ META-INF └─ resources └─ webjars └─ bootstrap └─ 3.3.7-1 ├─ css |   ├─ bootstrap.min.css |   ├─ bootstrap.min.css.gz # Gzip文件 ...

jquery-3.1.1.jar └─ META-INF └─ resources └─ webjars └─ jquery └─ 3.1.1 ├─ jquery.min.js ...

Spring Boot 中使用WebJars引入javasript依赖相关推荐

  1. Spring Boot中使用WebJars

    1.WbeJars介绍 WebJars是将Web前端JQuery和Bootstrap等资源打包成Java的Jar包,这样在Java Web开发中我们可以借助Maven这些依赖库的管理. 项目中需要的J ...

  2. springboot 分页查询参数_10. Spring Boot 中的分页查询

    在Spring Boot中使用分页查询主要依赖了org.springframework.data.domain.*包下面的及格分页类的功能.使用分页查询常见有两种方式,一种是直接在程序中写死分页的参数 ...

  3. 【spring boot】支持webjars

    前言 spring boot 2.4.3 spring boot 支持webjars 通过添加 ResourceHandlerRegistry 实现.有两种方式可以实现: spring boot默认对 ...

  4. 徒手解密 Spring Boot 中的 Starter自动化配置黑魔法

    我们使用 Spring Boot,基本上都是沉醉在它 Stater 的方便之中.Starter 为我们带来了众多的自动化配置,有了这些自动化配置,我们可以不费吹灰之力就能搭建一个生产级开发环境,有的小 ...

  5. Spring Boot中使用JavaMailSender发送邮件

    相信使用过Spring的众多开发者都知道Spring提供了非常好用的JavaMailSender接口实现邮件发送.在Spring Boot的Starter模块中也为此提供了自动化配置.下面通过实例看看 ...

  6. Spring Boot中使用PostgreSQL数据库

    在如今的关系型数据库中,有两个开源产品是你必须知道的.其中一个是MySQL,相信关注我的小伙伴们一定都不陌生,因为之前的Spring Boot关于关系型数据库的所有例子都是对MySQL来介绍的.而今天 ...

  7. Spring Boot中使用时序数据库InfluxDB

    除了最常用的关系数据库和缓存之外,之前我们已经介绍了在Spring Boot中如何配置和使用MongoDB.LDAP这些存储的案例.接下来,我们继续介绍另一种特殊的数据库:时序数据库InfluxDB在 ...

  8. Spring Boot中如何扩展XML请求和响应的支持

    在之前的所有Spring Boot教程中,我们都只提到和用到了针对HTML和JSON格式的请求与响应处理.那么对于XML格式的请求要如何快速的在Controller中包装成对象,以及如何以XML的格式 ...

  9. Spring Boot中使用LDAP来统一管理用户信息

    很多时候,我们在构建系统的时候都会自己创建用户管理体系,这对于开发人员来说并不是什么难事,但是当我们需要维护多个不同系统并且相同用户跨系统使用的情况下,如果每个系统维护自己的用户信息,那么此时用户信息 ...

  10. Spring Boot中使用RabbitMQ

    很久没有写Spring Boot的内容了,正好最近在写Spring Cloud Bus的内容,因为内容会有一些相关性,所以先补一篇关于AMQP的整合. Message Broker与AMQP简介 Me ...

最新文章

  1. sharepoint自带JS函数获取URL参数
  2. Java数据类型中String、Integer、int相互间的转换
  3. react表格无缝滚动_js实现表格无缝滚动效果
  4. 基于Python——实现远程下载sftp文件(只下载.zip文件)
  5. Linux 命令之 stat -- 显示文件的状态信息
  6. linux操作系统2试题,RedHat Linux 9.0 操作系统测试题2
  7. Tensorflow框架:卷积神经网络实战--Cifar训练集
  8. Invalid nested tag br found, expected closing tag li 错误解决
  9. input文本框的readonly和disabled属性区别
  10. sql语句中【模糊查询like的使用】
  11. linux查看zip文件内容、统计内容大小
  12. 【简单的小技巧】如何从网页上下载内嵌的PDF文件?
  13. mysql省市县表设计_表设计(省市县)
  14. 3.8 main.js-常用配置【uni-app教程uniapp教程(黄菊华-跨平台开发系列教程)】
  15. 工厂系列系统之 MES 系统8 生产计划-订单
  16. (华为社招岗位,部门---上海海思,GTS,海思,2012,华为云):北京北京北京!
  17. 学妹:大学四年以算法为重还是技术为重?
  18. 能Ping通外网但就是不能打开所有网页的解决办法
  19. [论文阅读](图像/视频质量评价系列)
  20. 抖音数字人主播app

热门文章

  1. info index.php,真 · nginx配置php文件解析(PATH_INFO支持与index.php隐藏)
  2. javascript中eval解析JSON字符串
  3. 【ARM-Linux开发】ctrl-xxx的对应的signal含义
  4. BZOJ 4241 历史研究
  5. ZOJ 2412 Farm Irrigation
  6. AOP(execution表达式)
  7. springboot项目自定义注解实现的多数据源切换--亲测有效
  8. 正确的理解MySQL的MVCC及实现原理
  9. 面试中爱问的大数量的问题总结
  10. linux内核打印%us,linux-kernel-使用us计时器跟踪Linux内核,按功能(仅最大)