spring-boot - Spring Boot - Spring.config.location
问题描述
我有一个奇怪的场景,我希望我能得到一些帮助。
我在服务器位置有一个 Spring Boot 应用程序。我使用 --spring.config.location 属性在外部文件路径中指定 application.properties。我的 Spring Boot 应用程序还需要一个与 application.properties 位于同一路径中的属性文件(可以说是应用程序除了 application.properties 还需要的 common.properties)。
我正在使用调度工具来调用 spring boot jar,当我这样做时,我使用下面的命令
{java的路径}/java -jar {jar的路径} --spring.config.location={application.properties和common.properties的路径}/application.properties,{application.properties和common.properties的路径}/ common.properties
jar 和属性文件所在的路径太长,以至于我的调度工具不接受配置以触发作业。我想知道是否有一种方法可以摆脱使用 {path of application.properties and common.properties} 来为 application.properties 和 common.properties 分别指定 2 次。
注意:我不想在 java 代码中的任何地方配置它。
解决方案
您可以将目录传递给--spring.config.location
不幸的是,Spring 将仅加载文件 application.propertis 和配置文件特定文件,例如application-{profile name}.properites
如果对您来说使用特定配置文件不是问题(您不使用配置文件特定的 Benas exc。)您可以将您的 common.properties 文件重命名为application-common.properties
并启动您的应用程序:
{path of java}/java -jar {path of jar} --spring.config.location=/path/of/both/properties --spring.profiles.active=common
请记住,这样 application-common.properties 将覆盖 application.properties 中的任何公共属性(与基于配置文件的属性一样)
推荐阅读
- python-3.x - 如何有条件地注释返回单个结果但类型不同的python函数?
- javascript - 我的自动完成 jquery 不适用于电子邮件
- mdriven - 如何在入职或结账过程中创建用户
- spring - Spring Data Audit,CreatedBy 在更新时丢失
- java - 为什么 java 不能协调来自不同来源的 `?` 泛型类型
- python - QThread 实现的 PyQt/PySide2 问题,我试图将另一个类的方法传递给线程类构造函数
- azure - Azure 替换中的域控制器
- c# - C# 抽象类将“this”作为泛型传递
- c# - 在 Razor 页面的 OnPost 方法上扫描 HTML 表
- html - 如何使用 css 在特定的类/表单中设置 type=submit 的样式(不是所有 type=submit 按钮)