目录
一、SpringBoot 指定配置文件路径:
1)使用命令行参数:
2)使用环境变量:
3)使用外部配置文件:
二、SpringBoot 配置文件生效的优先级排序:
首页 Java java教程 SpringBoot怎么将配置文件挂到jar包外面

SpringBoot怎么将配置文件挂到jar包外面

May 15, 2023 pm 03:01 PM
jar springboot

    一、SpringBoot 指定配置文件路径:

    在 SpringBoot 中,可以将配置文件放在 jar 包外面,这样可以方便地修改配置而不需要重新打包和部署。

    下面是指定配置文件目录的 几 种方法: (按生效优先级从高到低排序)

    1)使用命令行参数:

    在启动应用程序时,可以使用 --spring.config.location-Dspring.config.location 命令行参数来指定配置文件的路径,例如:(config 后面的 / 不可省略

    java -jar test.jar --spring.config.location=/opt/app/config/
    登录后复制

    补充:FHS将/opt定义为 “为安装附加应用软件包而保留”。所以这里选择 /opt 文件夹来存放应用程序的配置文件。

    2)使用环境变量:

    可以设置 SPRING_CONFIG_LOCATION 环境变量来指定配置文件的路径,例如:

    export SPRING_CONFIG_LOCATION=/opt/app/config/
    java -jar test.jar
    登录后复制

    3)使用外部配置文件:

    • 方法一: 在应用程序(jar包)启动命令执行目录下 创建一个名为 config 的文件夹,然后将配置文件放在该文件夹中。

    • 方法二: 在应用程序(jar包)同级目录下 创建一个名为 config 的文件夹,然后将配置文件放在该文件夹中。在代码的配置文件 application.propertiesapplication.yml 中添加以下行:

    spring.config.name=application
    spring.config.location=classpath:/,file:./config/
    登录后复制
    • 方法三: 在应用程序(jar包)同级目录下 直接放 propertiesyml 配置文件。

    • 方法四: 在应用程序(jar包)内部的 classpath同级目录下,创建 config 文件夹,然后放 propertiesyml 配置文件。

    • 方法五: 在应用程序(jar包)内部的 classpath同级目录下,然后直接放 propertiesyml 配置文件。

    注意:以上方法可以组合使用,例如,可以在命令行参数和环境变量中同时指定配置文件的路径,执行时命令行参数的优先级最高。

    二、SpringBoot 配置文件生效的优先级排序:

    1. java -jar 命令行中,通过 --spring.config.location 参数指定的方式优先级最高。

    2. 设置 SPRING_CONFIG_LOCATION 环境变量来指定配置文件的路径是次优先级。

    3. 在执行 java -jar 命令同级目录下的 config 文件夹是第三优先级。

    4. 注意:如果 java -jar 命令不是在项目 jar 包 同级目录执行的话,在项目 jar 包同级目录下的 config 文件夹是不生效的。

    5. 项目 jar 包中 propertiesyml 文件中指定 spring.config.location 配置文件夹是第四优先级。

    6. 项目 jar 包同级下直接放 properties 文件是第五优先级,直接把配置文件放到 jar 包的同级目录。

    7. 项目内部的 classpath 同级 config 文件夹是第六优先级,在 classpath 下建一个 config 文件夹,然后把配置文件放进去。

    8. 项目内部的 classpath 同级放 properties 文件是最低优先级,是在 classpath 下直接放配置文件。

    SpringBoot 默认是优先读取java -jar 命令同级目录下的一个 config/application.properties 文件的。

    在项目内 src/main/resources 文件夹下创建的 application.properties 文件的优先级是最低的。

    以上是SpringBoot怎么将配置文件挂到jar包外面的详细内容。更多信息请关注PHP中文网其他相关文章!

    本站声明
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    热AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智能驱动的应用程序,用于创建逼真的裸体照片

    AI Clothes Remover

    AI Clothes Remover

    用于从照片中去除衣服的在线人工智能工具。

    Undress AI Tool

    Undress AI Tool

    免费脱衣服图片

    Clothoff.io

    Clothoff.io

    AI脱衣机

    Video Face Swap

    Video Face Swap

    使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

    热门文章

    <🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
    4 周前 By 尊渡假赌尊渡假赌尊渡假赌
    北端:融合系统,解释
    4 周前 By 尊渡假赌尊渡假赌尊渡假赌
    Mandragora:巫婆树的耳语 - 如何解锁抓钩
    3 周前 By 尊渡假赌尊渡假赌尊渡假赌

    热工具

    记事本++7.3.1

    记事本++7.3.1

    好用且免费的代码编辑器

    SublimeText3汉化版

    SublimeText3汉化版

    中文版,非常好用

    禅工作室 13.0.1

    禅工作室 13.0.1

    功能强大的PHP集成开发环境

    Dreamweaver CS6

    Dreamweaver CS6

    视觉化网页开发工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神级代码编辑软件(SublimeText3)

    热门话题

    Java教程
    1674
    14
    CakePHP 教程
    1429
    52
    Laravel 教程
    1333
    25
    PHP教程
    1278
    29
    C# 教程
    1257
    24
    如何在 Linux 中运行 jar 文件 如何在 Linux 中运行 jar 文件 Feb 20, 2024 am 10:40 AM

    运行JAR文件的先决条件在Linux系统上运行JAR文件需要安装Java运行时环境(JRE),它是执行Java应用程序所需的基本组件,包括Java虚拟机(JVM)、核心类库等。许多主流Linux发行版,如Ubuntu、Debian、Fedora、openSUSE等,都提供了JRE包的软件库,方便用户进行安装。后文将详细介绍在流行的发行版上安装JRE的步骤。设置完JRE后,可以根据个人喜好选择使用命令行终端或图形用户界面来启动JAR文件。您的选择可能取决于对Linuxshell的熟悉程度和个人偏好

    Springboot怎么集成Jasypt实现配置文件加密 Springboot怎么集成Jasypt实现配置文件加密 Jun 01, 2023 am 08:55 AM

    Jasypt介绍Jasypt是一个java库,它允许开发员以最少的努力为他/她的项目添加基本的加密功能,并且不需要对加密工作原理有深入的了解用于单向和双向加密的高安全性、基于标准的加密技术。加密密码,文本,数字,二进制文件...适合集成到基于Spring的应用程序中,开放API,用于任何JCE提供程序...添加如下依赖:com.github.ulisesbocchiojasypt-spring-boot-starter2.1.1Jasypt好处保护我们的系统安全,即使代码泄露,也可以保证数据源的

    怎么在SpringBoot中使用Redis实现分布式锁 怎么在SpringBoot中使用Redis实现分布式锁 Jun 03, 2023 am 08:16 AM

    一、Redis实现分布式锁原理为什么需要分布式锁在聊分布式锁之前,有必要先解释一下,为什么需要分布式锁。与分布式锁相对就的是单机锁,我们在写多线程程序时,避免同时操作一个共享变量产生数据问题,通常会使用一把锁来互斥以保证共享变量的正确性,其使用范围是在同一个进程中。如果换做是多个进程,需要同时操作一个共享资源,如何互斥呢?现在的业务应用通常是微服务架构,这也意味着一个应用会部署多个进程,多个进程如果需要修改MySQL中的同一行记录,为了避免操作乱序导致脏数据,此时就需要引入分布式锁了。想要实现分

    SpringBoot怎么集成Redisson实现延迟队列 SpringBoot怎么集成Redisson实现延迟队列 May 30, 2023 pm 02:40 PM

    使用场景1、下单成功,30分钟未支付。支付超时,自动取消订单2、订单签收,签收后7天未进行评价。订单超时未评价,系统默认好评3、下单成功,商家5分钟未接单,订单取消4、配送超时,推送短信提醒……对于延时比较长的场景、实时性不高的场景,我们可以采用任务调度的方式定时轮询处理。如:xxl-job今天我们采

    springboot读取文件打成jar包后访问不到怎么解决 springboot读取文件打成jar包后访问不到怎么解决 Jun 03, 2023 pm 04:38 PM

    springboot读取文件,打成jar包后访问不到最新开发出现一种情况,springboot打成jar包后读取不到文件,原因是打包之后,文件的虚拟路径是无效的,只能通过流去读取。文件在resources下publicvoidtest(){Listnames=newArrayList();InputStreamReaderread=null;try{ClassPathResourceresource=newClassPathResource("name.txt");Input

    Springboot+Mybatis-plus不使用SQL语句进行多表添加怎么实现 Springboot+Mybatis-plus不使用SQL语句进行多表添加怎么实现 Jun 02, 2023 am 11:07 AM

    在Springboot+Mybatis-plus不使用SQL语句进行多表添加操作我所遇到的问题准备工作在测试环境下模拟思维分解一下:创建出一个带有参数的BrandDTO对象模拟对后台传递参数我所遇到的问题我们都知道,在我们使用Mybatis-plus中进行多表操作是极其困难的,如果你不使用Mybatis-plus-join这一类的工具,你只能去配置对应的Mapper.xml文件,配置又臭又长的ResultMap,然后再去写对应的sql语句,这种方法虽然看上去很麻烦,但具有很高的灵活性,可以让我们

    SpringBoot怎么自定义Redis实现缓存序列化 SpringBoot怎么自定义Redis实现缓存序列化 Jun 03, 2023 am 11:32 AM

    1、自定义RedisTemplate1.1、RedisAPI默认序列化机制基于API的Redis缓存实现是使用RedisTemplate模板进行数据缓存操作的,这里打开RedisTemplate类,查看该类的源码信息publicclassRedisTemplateextendsRedisAccessorimplementsRedisOperations,BeanClassLoaderAware{//声明了key、value的各种序列化方式,初始值为空@NullableprivateRedisSe

    SpringBoot与SpringMVC的比较及差别分析 SpringBoot与SpringMVC的比较及差别分析 Dec 29, 2023 am 11:02 AM

    SpringBoot和SpringMVC都是Java开发中常用的框架,但它们之间有一些明显的差异。本文将探究这两个框架的特点和用途,并对它们的差异进行比较。首先,我们来了解一下SpringBoot。SpringBoot是由Pivotal团队开发的,它旨在简化基于Spring框架的应用程序的创建和部署。它提供了一种快速、轻量级的方式来构建独立的、可执行

    See all articles