SpringBoot打包独立可执行Web项目(3)

在完成SpringBoot Web项目打包独立Jar(2)的所有操作后已经完成了lib与application.yml文件的分离操作接下来要进行静态文件分离操作。

1. 分离静态文件

打包时不必分离resources/static 文件夹下内容只需要将静态目录转发更改一下目录位置就可以了。原因是通常我们都采用前后端分离模式开发项目,前端代码与后端代码是分离在两个项目中。

1.1 打开WebConfig.java内容如下:

package com.example.demo.conifg;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        // 配置静态目录转发
        registry.addResourceHandler("/dist/**").addResourceLocations("classpath:/static/dist/");
    }
}

将文件做如下更改:

package com.example.demo.conifg;

import org.springframework.context.annotation.Configuration;
import org.springframework.util.ResourceUtils;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import java.io.File;
import java.io.FileNotFoundException;

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        // 配置静态目录转发
//        registry.addResourceHandler("/dist/**").addResourceLocations("classpath:/static/dist/");
        try {
            String jar_parent = new File(ResourceUtils.getURL("classpath:").getPath()).getParentFile().getParentFile().getParent();
            String html_path = jar_parent + "/dist/";
            registry.addResourceHandler("/dist/**").addResourceLocations(html_path);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

更改后静态目录默认读取jar包所在目录dist路径资源,修改后发布包结构如下图:
image.png

启动项目测试相关接口与静态页面可以正常显示。

1.2 使用独立jre运行项目,脱离系统Java环境

下载对应系统版本的jre文件,存放到与jar包同一目录下,jar包启动命令使用
./jre/bin/java -jar xx.jar(这里使用的linux版本,win版本命令做相应更改即可)最终jar发布包结构如下图:

image.png

写在最后

至此已经完成了SpringBoot项目打包独立可执行Jar所有操作,这是一种比较原始的部署模式,使用场景多在为用户快速搭建本地可使用服务而不依赖用户系统配置。

文章中如有错误的地方望指出。

本篇文章由一文多发平台ArtiPub自动发布

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值