当前位置: 首页 > news >正文

JAVA使用jar包外前端

默认情况下,springboot 以下目录为默认的静态资源目录。其中的静态资源可以被直接访问:

  • classpath:/META-INF/resources/
  • classpath:/resources/
  • classpath:/static/
  • classpath:/public/
  • ${user.dir}/public/ (程序运行目录下的 public 目录)

优先级从上往下,当多个静态资源目录中出现同名文件时,越靠上的目录权重越高。

 配置用于指定静态资源的目录,它是一个数组,可以配置多个路径。默认值为:[classpath:/META-INF/resources/, classpath:/resources/, classpath:/static/, classpath:/public/]。静态资源目录不仅可以是 classpath 下的目录,也可以是本地磁盘目录,使用 file: 前缀进行配置,如

spring.resources.static-locations[0]=file:D:\\upload\\

还可以配合 ${} 语法,从环境变量、系统属性中读取目录信息,例如,设置应用启动目录下的 public 目录为静态资源目录:

# ${user.dir} 的值也就是 System.getProperty("user.dir")
spring.resources.static-locations[0]=file:${user.dir}\\upload\\

1、修改配置文件,把jar包同级文件夹下的static设置为第一个目录

springboot版本2.3.5配置是 spring.resources.static-location

spring:
  resources:
    static-locations:
      - file:./static/
      - classpath:/META-INF/resources/
      - classpath:/resources/
      - classpath:/static/
      - classpath:/public/
高版本的springboot的配置可能是spring.web.resources.static-location

2、pom.xml配置把配置文件和静态资源复制出来

    <build>
        <plugins>
            <!-- Spring Boot 打包插件 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <!-- 测试管理插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>

            <!-- 编译器插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.10.1</version>
            </plugin>

            <!-- 依赖管理插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.8</version>
                <executions>
                    <!-- 将jar复制到根目录的target文件夹下 -->
                    <execution>
                        <id>copy-jar</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>${project.groupId}</groupId>
                                    <artifactId>${project.artifactId}</artifactId>
                                    <version>${project.version}</version>
                                    <type>${project.packaging}</type>
                                    <destFileName>${project.parent.artifactId}.jar</destFileName>
                                </artifactItem>
                            </artifactItems>
                            <outputDirectory>../target</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <!-- 资源处理插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.2.0</version>
                <executions>
                    <!-- 复制配置文件到配置目录 -->
                    <execution>
                        <id>filter-config-resources</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <!-- 指定resources文件 -->
                            <resources>
                                <resource>
                                    <directory>src/main/resources</directory>
                                    <!-- 分环境过滤开启 -->
                                    <filtering>true</filtering>
                                    <includes>
                                        <include>*.yml</include>
                                        <include>logback-spring.xml</include>
                                        <include>banner.txt</include>
                                    </includes>
                                </resource>
                            </resources>
                            <!-- 更改输出目录 -->
                            <outputDirectory>../target/config</outputDirectory>
                        </configuration>
                    </execution>
                    <!-- 复制静态资源到静态资源目录 -->
                    <execution>
                        <id>copy-static-resources</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <resources>
                                <resource>
                                    <directory>src/main/resources</directory>
                                    <!-- 分环境过滤关闭 -->
                                    <filtering>false</filtering>
                                    <includes>
                                        <include>static/**</include>
                                    </includes>
                                </resource>
                            </resources>
                            <!-- 输出路径 -->
                            <outputDirectory>../target/</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

3、打包后有一个jar包,一个static文件夹,一个config文件夹。

更新前端可以直接替换static文件夹中的前端,无需重启jar包服务。

修改配置可以直接修改config文件夹中的配置文件,修改后需要重启jar包的服务。

相关文章:

  • 统一 Elastic 向量数据库与 LLM 功能,实现智能查询
  • 文档在线协同工具ONLYOFFICE教程:如何使用宏对 PDF 表单中的特定字段执行计算
  • 设计模式之美
  • LeetCode-移动零
  • 如何配置Socks5代理
  • 56.HarmonyOS NEXT 登录模块开发教程(十):总结与展望
  • 游戏引擎学习第156天
  • [leetcode] 面试经典 150 题——篇1:数组/字符串
  • 【redis】redis的单线程模型为什么效率高?
  • 为什么使用 XML Schema?
  • Linux websocket服务器、配网方法、QT客户端程序
  • deepseek+kimi做ppt教程记录
  • 我的创作纪念日 打造高效 Python 日记本应用:从基础搭建到功能优化全解析
  • 深度学习篇---Opencv中的Haar级联分类器
  • 【Python运维】用Python编写云服务监控工具:实时监测和报警
  • Android 列表页面终极封装:SmartRefreshLayout + BRVAH 实现下拉刷新和加载更多
  • PGSQL基本使用
  • 深圳南柯电子|净水器EMC测试整改:水质安全与电磁兼容性的双赢
  • Word文档标题关联图片提取工具实现原理
  • React学习笔记15
  • 福建省住房和城乡建设厅网站首页/简单的个人主页网站制作
  • 网站后台搭建图文/站长之家seo概况查询
  • 做网站手机端不做PC可以吗/网络广告的概念
  • 在政务网站建设与管理上的讲话/整合营销传播方案案例
  • 阳春做网站公司/关键词排名方法
  • 班级展示网站/南京seo优化推广