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 ...

转载于:https://www.cnblogs.com/liaojie970/p/7852576.html

Spring Boot 中使用WebJars相关推荐

  1. Spring Boot中使用WebJars

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

  2. 【spring boot】支持webjars

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

  3. java 方式配置ssm,关于SSM以及Spring boot中对于Spring MVC配置的问题

    SSM中 Spring MVC配置 传统的web.xml配置 web.xml contextConfigLocation classpath*:applicationContext.xml org.s ...

  4. 如何把网上下载的前端页面在Spring Boot中跑起来(CSS,JavaScript,程序运行等路径设置)

    这个功能非常有用,估计99.99%的java web开发者都干过,本人是初学者,特写这个博客记录下! 方便本人以后查阅,方便以后进行投机取巧 这里使用thymeleaf模板引擎! 在网上下载了一个Bo ...

  5. Spring Boot中使用模板引擎参数化传参数

    目录 理论 代码及演示 理论 在导航页里面,当点击某个栏目的时候,就得被激活,在Spring Boot中,一般把导航页做成片段的形式,这个片段是可以根据参数进行激活某一个栏目,如下的演示所示,通过三元 ...

  6. Spring Boot中防表单重复提交以及拦截器登录检测

    目录 理论 演示 源码 理论 在用户登录后,如果按F5刷新会出现表单重复提交的问题,解决这个问题后,如果没有拦截器登录检测,就会造成,任意用户可以登录后台界面,所以要有拦截器登录检测. 相关的逻辑步骤 ...

  7. Spring Boot中使用模板引擎引用资源

    目录 概念 演示 概念 在Spring Boot中可以通过模板引擎去引用资源,如果项目改变了,也是可以跑的,不需要自己手动一个个去改链接. 演示 运行截图如下: 但修改properties文件: se ...

  8. 再谈Spring Boot中的乱码和编码问题

    编码算不上一个大问题,即使你什么都不管,也有很大的可能你不会遇到任何问题,因为大部分框架都有默认的编码配置,有很多是UTF-8,那么遇到中文乱码的机会很低,所以很多人也忽视了. Spring系列产品大 ...

  9. 【spring boot2】第8篇:spring boot 中的 servlet 容器及如何使用war包部署

    嵌入式 servlet 容器 在 spring boot 之前的web开发,我们都是把我们的应用部署到 Tomcat 等servelt容器,这些容器一般都会在我们的应用服务器上安装好环境,但是 spr ...

  10. Spring Boot 中使用 MongoDB 增删改查

    本文快速入门,MongoDB 结合SpringBoot starter-data-mongodb 进行增删改查 1.什么是MongoDB ? MongoDB 是由C++语言编写的,是一个基于分布式文件 ...

最新文章

  1. Windows平台搭建-----C语言
  2. 【风控术语】数字金融反欺诈技术名词表
  3. Java并发编程(1):可重入内置锁
  4. Locality Sensitive Hashing
  5. Xcodebuild自动打包
  6. 一个本科生,只用了两年就拿下诺贝尔奖,拯救了无数糖尿病患者
  7. wrodpress登录mysql_登陆wordpress后台MySQL错误
  8. Jmeter4.0新版本特性研究
  9. ios UISegmentedControl的使用简介
  10. wgs84坐标转换,地图拾取wgs84坐标工具推荐
  11. 新年新气象,90行代码菜鸟用Python制作小姐姐新年日历天气卡,送人太有面子啦!...
  12. 电脑连接热点无internet访问权限_电脑连接无线网,显示无网络访问权限
  13. 基于QT Creator 5.14的仿QQ聊天系统【UDP通讯】
  14. HDU——1013(字符串+数学)Digital Roots
  15. 【x与y的非线性关系】回归,自变量,自变量的平方项,自变量的二次项
  16. Mybatis中复杂语句标签的简单初步使用
  17. 机器学习算法 10 —— HMM模型(马尔科夫链、前向后向算法、维特比算法解码、hmmlearn)
  18. 通达信 移动平均算法_通达信洗盘监庄指标副图公式
  19. Linux 升级Openssh8.0p1 和 Openssl1.0.2r的小插曲
  20. 当 AlphaGo 升级版本 Master 横扫围棋大师,我们来聊聊如何学习AI

热门文章

  1. 苹果mac绘图软件:AutoCAD
  2. indesign入门教程,如何旋转、翻转、锁定和隐藏内容?
  3. 在 Mac 上的“快捷指令”中如何调整基本隐私设置?
  4. 如何解决 MacBook Pro Touch ID不起作用?
  5. recyclerview简单实现单选多选反选全选
  6. 【Java】Java_16 控制循环结构Break、Continue、Return
  7. Linux程序包管理和yum用法
  8. 浅谈C#的垃圾回收-关于GC、析构函数、Dispose、and Finalize asp.net GC之析构函数详解...
  9. mysql database backup use python scripts
  10. 关于访问远程服务器的一些基本操作