spring-boot 应用程序的外部配置

2024-01-04

我有一个 spring-boot 应用程序,我想使用外部配置文件运行它。 当我将它作为 jar 运行(带有嵌入式 servlet 容器)时,一切都很好。 但我想在外部 servlet 容器(Tomcat)下运行它,这里我遇到了外部配置问题。我尝试过 @PropertySource,但在这种情况下,应用程序仅获取 war 文件配置中缺少的属性:外部配置不会覆盖内部配置。 所以问题是:如何配置外部配置来覆盖内部配置?


您可能正在使用以下形式的外部配置application.properties当您将应用程序作为 jar 运行时,位于当前目录中。然而,当在外部 tomcat 中部署为 war 时,“当前目录”并不是很有用。即使您找出当前目录是什么,它很可能是该 tomcat 中运行的所有应用程序的同一位置,因此当您运行多个应用程序时,这不会很好地工作。

我们在这里所做的是声明两个PropertySources在我们的应用程序中:

@PropertySources({@PropertySource(value={"classpath:internal.properties"}), @PropertySource(value={"file:${application.properties}"})})

internal.properties包含属性的“内置”默认值。第二PropertySource是一个包含外部配置的文件。请注意文件名本身就是一个属性。

我们在外部定义它Context我们的应用程序的元素(在 tomcat 中):

<Context docBase="/path/to/your/war/your.war">
    <Parameter name="application.properties" value="/path/to/your/properties/application.properties"/>
</Context>

这允许您在 tomcat 中运行多个应用程序,每个应用程序使用它自己的外部属性文件。您甚至可以有多个实例same以不同属性运行的应用程序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spring-boot 应用程序的外部配置 的相关文章

  • Java 枚举与创建位掩码和检查权限的混淆

    我想将此 c 权限模块移植到 java 但是当我无法将数值保存在数据库中然后将其转换为枚举表示形式时 我很困惑如何执行此操作 在 C 中 我创建一个如下所示的枚举 public enum ArticlePermission CanRead
  • 使用 LinkedList 实现下一个和上一个按钮

    这可能是一个愚蠢的问题 但我很难思考清楚 我编写了一个使用 LinkedList 来移动加载的 MIDI 乐器的方法 我想制作一个下一个和一个上一个按钮 以便每次单击该按钮时都会遍历 LinkedList 如果我硬编码itr next or
  • 过滤两次 Lambda Java

    我有一个清单如下 1 2 3 4 5 6 7 和 预期结果必须是 1 2 3 4 5 6 7 我知道怎么做才能到7点 我的结果 1 2 3 4 5 6 我也想知道如何输入 7 我添加了i gt i objList size 1到我的过滤器
  • Pig Udf 显示结果

    我是 Pig 的新手 我用 Java 编写了一个 udf 并且包含了一个 System out println 其中的声明 我必须知道在 Pig 中运行时该语句在哪里打印 假设你的UDF 扩展了 EvalFunc 您可以使用从返回的 Log
  • 如何在 Spring 中禁用使用 @Component 注释创建 bean?

    我的项目中有一些用于重构逻辑的通用接口 它看起来大约是这样的 public interface RefactorAwareEntryPoint default boolean doRefactor if EventLogService wa
  • 谷歌应用程序引擎会话

    什么是java应用程序引擎 默认会话超时 如果我们将会话超时设置为非常非常长的时间 会不会产生不良影响 因为谷歌应用程序引擎会话默认情况下仅存储在数据存储中 就像facebook一样 每次访问该页面时 会话仍然永远存在 默认会话超时设置为
  • 在接口中使用默认方法是否违反接口隔离原则?

    我正在学习 SOLID 原则 ISP 指出 客户端不应被迫依赖于他们所使用的接口 不使用 在接口中使用默认方法是否违反了这个原则 我见过类似的问题 但我在这里发布了一个示例 以便更清楚地了解我的示例是否违反了 ISP 假设我有这个例子 pu
  • 来自 dll 的 Java 调用函数

    我有这个 python 脚本导入zkemkeeperdll 并连接到考勤设备 ZKTeco 这是我正在使用的脚本 from win32com client import Dispatch zk Dispatch zkemkeeper ZKE
  • java.lang.IllegalStateException:应用程序 PagerAdapter 更改了适配器的内容,而没有调用 PagerAdapter#notifyDataSetChanged android

    我正在尝试使用静态类将值传递给视图 而不是使用意图 因为我必须传递大量数据 有时我会收到此错误 但无法找出主要原因是什么 Error java lang IllegalStateException The application s Pag
  • 在 junit 测试中获取 javax.lang.model.element.Element 类

    我想测试我的实用程序类 ElementUtils 但我不知道如何将类作为元素获取 在 AnnotationProcessors 中 我使用以下代码获取元素 Set
  • Eclipse Maven Spring 项目 - 错误

    I need help with an error which make me crazy I started to study Java EE and I am going through tutorial on youtube Ever
  • volatile、final 和synchronized 安全发布的区别

    给定一个带有变量 x 的 A 类 变量 x 在类构造函数中设置 A x 77 我们想将 x 发布到其他线程 考虑以下 3 种变量 x 线程安全 发布的情况 1 x is final 2 x is volatile 3 x 设定为同步块 sy
  • 在我的 Spring Boot 示例中无法打开版本 3 中的 Swagger UI

    我在 Spring Boot 示例中打开 swagger ui 时遇到问题 当我访问 localhost 8080 swagger ui 或 localhost 8080 root api name swagger ui 时出现这种错误 S
  • 不接受任何内容也不返回任何内容的函数接口[重复]

    这个问题在这里已经有答案了 JDK中是否有一个标准的函数式接口 不接受也不返回任何内容 我找不到一个 像下面这样 FunctionalInterface interface Action void execute 可运行怎么样 Functi
  • Cucumber 0.4.3 (cuke4duke) 与 java + maven gem 问题

    我最近开始为 Cucumber 安装一个示例项目 并尝试使用 maven java 运行它 我遵循了这个指南 http www goodercode com wp using cucumber tests with maven and ja
  • 我如何在java中读取二进制数据文件

    因此 我正在为学校做一个项目 我需要读取二进制数据文件并使用它来生成角色的统计数据 例如力量和智慧 它的设置是让前 8 位组成一个统计数据 我想知道执行此操作的实际语法是什么 是不是就像读文本文件一样 这样 File file new Fi
  • 包 javax.el 不存在

    我正在使用 jre6 eclipse 并导入 javax el 错误 包 javax el 不存在 javac 导入 javax el 过来 这不应该是java的一部分吗 谁能告诉我为什么会这样 谢谢 米 EL 统一表达语言 是 Java
  • 使用反射覆盖最终静态字段是否有限制?

    在我的一些单元测试中 我在最终静态字段上的反射中遇到了奇怪的行为 下面是说明我的问题的示例 我有一个基本的 Singleton 类 其中包含一个 Integer public class BasicHolder private static
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • 如何防止在Spring Boot单元测试中执行import.sql

    我的类路径中有一个 import sql 文件 其中包含一些 INSERT 语句 当使用 profile devel 运行我的应用程序时 它的数据被加载到 postgres 数据库中 到目前为止一切正常 当使用测试配置文件执行测试时 imp

随机推荐

  • 选择每组中具有最大值的行

    在每个主题都有多个观察值的数据集中 对于每个主题 我想选择具有最大值 pt 的行 例如 使用以下数据集 ID lt c 1 1 1 2 2 2 2 3 3 Value lt c 2 3 5 2 5 8 17 3 5 Event lt c 1
  • 当变量调用别名时如何调用别名

    我添加了一个别名 alias anyalias echo kallel 如果我执行 anyalias kallel 它执行echo命令没有任何问题 现在 如果我以这种方式定义一个变量 var anyalias 然后用这样的方式执行 var
  • 是否有更简单的方法使用 ActiveAdmin 创建/选择相关数据?

    假设我有以下模型 class Translation lt ActiveRecord Base has many localizations end class Localization lt ActiveRecord Base belon
  • 访问 Linkedin 私人可播放流的权限 - 500 或 403 错误

    我在使用 Linked In API V2 时遇到了下一个问题 curl X GET header Accet application json header Authorization Bearer
  • 获取iframe的内容

    我正在尝试获取的内容从另一页 另一个页面是另一个网站 我登录了该网站 获取其内容并将其存储在 我如何获取其中的内容进入当前窗口 简短的回答 你做不到 浏览器使用以下限制限制来自不同网站的内容之间的交互同源政策 http en wikiped
  • 如何在flutter中为image.asset添加onClick?

    我在单击时使用了三个图像 这些图像将导航到其他页面 那么我应该如何在这些图像上使用 onClick 我的代码如下 Row children Expanded child Column children
  • 将 spin.js 微调器插入 div 中?

    刚刚发现 spin js 它似乎是一个救星 问题是如何将微调器插入到我的 div 中 我有一个关注按钮 单击该按钮时 我会删除背景图像并当前替换为 loader gif 我怎样才能用 spin js 做同样的事情 我举了一个 jsfiddl
  • ::-ms-thumb 出现在 MS Edge 中的轨道后面

    我创建了一个滑块 In chrome everything is working fine See image below But in MS Edge thumb appears behind track See image below
  • 无法销毁 codeigniter 中的会话

    我想要实现的是一个简单的登录页面 如果用户登录成功 则重定向到主页 否则保留登录页面 我有 1 个名为login 和 1 个型号名为main 当用户单击登录按钮时 将调用login login send
  • 从大字典中替换 DataFrame 中的值的更好方法

    我编写了一些代码 使用字典将 DataFrame 中的值替换为另一个帧中的值 并且它正在工作 但我在一些大文件上使用它 其中字典可能会变得很长 几千双 当我使用这段代码时 它运行速度非常慢 而且在某些地方还出现了内存不足的情况 我有些确信我
  • Box2D 中的 ChainShape

    最近开始学习libgdx 遇到Box2D的CainShape的问题 我的第一个目标是简单地创建一个带有 ChainShape 的盒子 为了实现这一点 我将四个 Vector2 添加到一个数组中 并使用它们创建一个循环 结果取决于数组中的排列
  • Nunit 运行每个测试两次

    我通过 NUnit 运行测试时遇到问题 我不知道为什么 但每个测试运行两次 问题是 在另一台笔记本电脑上 它通常只运行一次 有没有人遇到同样的问题并且知道如何处理 我有同样的问题 就我而言 我同时拥有Visual Studio 扩展 htt
  • 使用 markdown 时如何正确地将多行 xml 片段粘贴到 github wiki

    我正在尝试为我的项目创建一个 github wiki 但我无法将 Spring beans xml 文件中的片段格式化到此 wiki 中 正确的做法是什么 我尝试使用pre tag code但要么它根本不显示 要么它在同一行中显示所有内容
  • 在 Laravel 5 中间件中获取 cookie

    我正在尝试从 Laravel 5 3 中的中间件检索 cookie 但 request gt cookie language 似乎是空的 我猜它只是在中间件运行后设置的 我在某处读到我应该使用 Cookie queued language
  • Qt父机制

    有一个QPushButton in a QWidget click该按钮应该打开另一个QWidget 如下编码 项目 pro QT core gui greaterThan QT MAJOR VERSION 4 QT widgets TAR
  • C 中函数内的函数[重复]

    这个问题在这里已经有答案了 我正在编写与此类似的代码 include
  • 如何在 APL 中使用排名运算符代替each

    I have dummytxt abcdefghijk texttoadd down rfikv 20 30 50 并需要以下输出 defghijk20down defghijk30down defghijk50down 我可以这样做 sc
  • 在iPhone SDK中设置铃声[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 应用程序如何在 iPhone 上设置铃声 目前 API 不支持此功能 因为它可用于将铃声设置为用户不打算设置的内容 如果您希望添加该功能
  • 如何在 Blazor WASM 项目中针对不同类型的客户端(用户/通行证和客户端/秘密)组合多种身份验证方案?

    我有一个带有 Blazor 客户端和 ASP NET Core 服务器的 Blazor WASM 项目 我可以使用以下代码对用户 密码进行身份验证 services AddDefaultIdentity
  • spring-boot 应用程序的外部配置

    我有一个 spring boot 应用程序 我想使用外部配置文件运行它 当我将它作为 jar 运行 带有嵌入式 servlet 容器 时 一切都很好 但我想在外部 servlet 容器 Tomcat 下运行它 这里我遇到了外部配置问题 我尝