SpringBoot使用WebJars统一管理静态资源的方法

 更新时间:2018年12月26日 11:32:26   作者:yizhiwazi  
这篇文章主要介绍了SpringBoot使用WebJars统一管理静态资源的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

传统管理静态资源主要依赖于复制粘贴,不利于后期维护,为了让大家往后更舒心,让WebJars给静态资源来一次搬家革命吧!!

学习目标

简单两步!快速学会使用WebJars统一管理前端依赖。

快速查阅

源码下载:SpringBoot Webjars Learning 

使用教程

一、引入相关依赖

WebJars官网 找到项目中需要的依赖,例如在项目中引入jQuery、BootStrap前端组件等。例如:

  • 版本定位工具:webjars-locator-core
  • 前端组件:jquery 、bootstrap
  <dependency><!--Webjars版本定位工具(前端)-->
    <groupId>org.webjars</groupId>
    <artifactId>webjars-locator-core</artifactId>
   </dependency>

   <dependency><!--Jquery组件(前端)-->
    <groupId>org.webjars</groupId>
    <artifactId>jquery</artifactId>
    <version>3.3.1</version>
   </dependency>

二、访问静态资源

在浏览器访问静态资源:

快速访问:http://localhost:8080/webjars/jquery/jquery.js  (推荐)
快速访问:http://localhost:8080/webjars/jquery/3.3.1/jquery.js

新手提问:

有小伙伴可能疑问,既然SpringBoot天然支持WebJars的静态资源访问,为什么还要额外添加定位工具webjars-locator-core呢?

快速答疑:

主要是为了解决访问WebJars静态资源时必须携带版本号的繁琐问题。举个例子,某项目准备将BootStrap 3.3.x 升级到 4.x 大版本,此时除了在POM文件调整之外,还需要大面积的在页面中调整因为版本号变更引起问题的路径,而使用定位器之后无需输入版本号自动定位。

总结

使用WebJars对前端依赖进行统一管理有什么好处呢?

1、静态资源版本化

传统的静态资源需要自行维护,资源种类繁多,使得项目后期越来越臃肿,维护版本升级也变得困难,而使用WebJars方式进行管理后,版本升级问题迎刃而解。

2、提升编译速度

经测试,使用WebJars的方式管理依赖可以给项目的编译速度带来2-5倍的速度提升,还在犹豫的小伙伴快点尝试起来吧!

3、在WebJars官方找不到自己想要的依赖怎么办?

解决办法:将下载好的静态资源目录发布到公司私服仓库即可。

例如:新建一个SpringBoot项目,手工创建目录 META-INF/resources/ ,将静态资源完整复制进去,然后发布公司Maven私服即可。当然,这只是简洁做法,如果想按照打造标准的WebJars资源请继续看下方。

4、将静态资源发布成标准的Webjars格式怎么弄?

解决办法:以Metronic为例 发布标准的webjars 资源到公司私服。

WebJars发布流程:

1、新建SpringBoot工程 然后在src\main\resources\ 新建目录 META-INF\resources\webjars\metronic  重点来了 这里4.1.9 必须跟POM文件的<version>4.1.9</version>保持一致。

 

 2、修改POM文件 填写项目信息和公司私服地址。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <!--项目信息-->
 <groupId>org.webjars</groupId>
 <artifactId>metronic</artifactId>
 <version>4.1.9</version>
 <packaging>jar</packaging>
 <name>metronic</name>
 <description>metronic</description>

 <!--维护信息-->
 <developers>
  <developer>
   <name>socks</name>
   <email>https://github.com/yizhiwazi</email>
  </developer>
 </developers>

 <!--发布地址-->
 <distributionManagement>
  <repository>
   <id>xx-repo</id>
    <!--这里替换成公司私服地址-->
<url>http://127.0.0.1:8088/nexus/content/repositories/thirdparty/</url>
  </repository>
  <snapshotRepository>
   <id>xx-plugin-repo</id>
    <!--这里替换成公司私服地址-->
<url>http://127.0.0.1:8088/nexus/content/repositories/thirdparty/</url>
  </snapshotRepository>
 </distributionManagement>

</project>

3、在本地MAVEN的配置文件指定公司私服的账号密码。

<?xml version="1.0" encoding="UTF-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">


 <localRepository>D:\dev\mvnrepository</localRepository>

 <mirrors>
   <!-- 阿里云仓库 -->
   <mirror>
    <id>aliyun</id>
    <mirrorOf>central</mirrorOf>
    <name>aliyun-all</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
   </mirror>
  
   <!-- 中央仓库1 -->
   <mirror>
    <id>repo1</id>
    <mirrorOf>central</mirrorOf>
    <name>Human Readable Name for this Mirror.</name>
    <url>http://repo1.maven.org/maven2/</url>
   </mirror>
  
   <!-- 中央仓库2 -->
   <mirror>
    <id>repo2</id>
    <mirrorOf>central</mirrorOf>
    <name>Human Readable Name for this Mirror.</name>
    <url>http://repo2.maven.org/maven2/</url>
   </mirror>
 </mirrors> 
 
  <!-- 暂时在发布仓库到213的时候用到-->
  <servers>
  <!-- 仓库地址账号 -->
  <server>
   <id>xx-repo</id>
   <username>admin</username>
   <password>123456</password>
  </server>
  <!-- 插件地址账号 -->
  <server>
   <id>xx-plugin-repo</id>
   <username>admin</username>
   <password>123456</password>
  </server>
 </servers>

</settings>

4、打开IDEA->Maven->Deploy 将项目到公司私服,大功告成。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java冒泡排序的定义与实例代码

    Java冒泡排序的定义与实例代码

    这篇文章主要给大家介绍了关于Java冒泡排序的定义与实例的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 解析Java的Hibernate框架中的持久化类和映射文件

    解析Java的Hibernate框架中的持久化类和映射文件

    这篇文章主要介绍了Java的Hibernate框架中的持久化类和映射文件,Hibernate是Java的SSH三大web开发框架之一,需要的朋友可以参考下
    2015-12-12
  • java实现字符串和日期类型相互转换的方法

    java实现字符串和日期类型相互转换的方法

    这篇文章主要介绍了java实现字符串和日期类型相互转换的方法,涉及java针对日期与字符串的转换与运算相关操作技巧,需要的朋友可以参考下
    2017-02-02
  • logback使用MDCFilter日志过滤源码解读

    logback使用MDCFilter日志过滤源码解读

    这篇文章主要介绍了logback使用MDCFilter日志过滤源码解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • SpringBoot 自定义starter yaml提示失效问题及解决方法

    SpringBoot 自定义starter yaml提示失效问题及解决方法

    在自定义starter后,必不可少会有properties配置参数需要指定,而在有时又不知道为什么出现这个问题,这篇文章主要介绍了SpringBoot 自定义starter yaml提示失效问题,需要的朋友可以参考下
    2022-12-12
  • Java中线程组ThreadGroup与线程池的区别及示例

    Java中线程组ThreadGroup与线程池的区别及示例

    这篇文章主要介绍了Java中线程组与线程池的区别及示例,ThreadGroup是用来管理一组线程的,可以控制线程的执行,查看线程的执行状态等操作,方便对于一组线程的统一管理,需要的朋友可以参考下
    2023-05-05
  • Java中Map的遍历方法及性能测试

    Java中Map的遍历方法及性能测试

    这篇文章主要介绍了Java中Map的遍历方法及性能测试,本文讲解对HashMap、TreeMap进行对比测试,给出测试代码、测试结果和测试结论,需要的朋友可以参考下
    2015-01-01
  • SpringBoot实现yml配置文件为变量赋值

    SpringBoot实现yml配置文件为变量赋值

    这篇文章主要介绍了SpringBoot实现yml配置文件为变量赋值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Java对称加密工作模式原理详解

    Java对称加密工作模式原理详解

    这篇文章主要介绍了Java对称加密工作模式原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Java开发中POJO和JSON互转时如何忽略隐藏字段的问题

    Java开发中POJO和JSON互转时如何忽略隐藏字段的问题

    这篇文章主要介绍了Java开发中POJO和JSON互转时如何忽略隐藏字段的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02

最新评论