【问题标题】:Spring boot JAR as windows service AND external application.ymlSpring Boot JAR 作为 Windows 服务和外部 application.yml
【发布时间】:2021-01-07 09:13:22
【问题描述】:

我将我的 Spring Boot 应用程序打包到一个 jar 中,并通过带有 .bat 文件的 apache tomcat 9 将其作为 Web 服务。

另一方面,application-prod.yml 的外部化不起作用,并且 .yml 文件在与 jar 相同的路径中被忽略。

请问我该怎么做

【问题讨论】:

  • 感谢您的回答,它通过启动 java -jar example.jar 并将属性文件放在 mm 文件夹中而不是 jar 与命令行一起工作,但是当我们使用 tomcat9 创建 Windows 服务时工具(serviceInstall.bat),我们将 jar 设置为 windows 服务,application-prod.yml 文件被忽略。

标签: java spring-boot windows-services tomcat9


【解决方案1】:

使用打包工具打包,如maven。 如果你使用maven,你应该配置打包插件

【讨论】:

  • 您好,谢谢,但我没有包装问题。我的问题是,当我们使用 tomcat9 工具(serviceInstall.bat)将 jar 创建为 Windows 服务时,如何将 application-prod.yml 文件外部化。
  • 你的意思是把prd.yml的配置分开,让应用在每次启动服务的时候加载读取。如果这意味着,Spring Boot 允许您将配置外部化。 Spring Boot 使用了一个非常特殊的 PropertySource 命令,该命令旨在允许明智地重写值。这些属性按以下顺序考虑:1. Java 系统属性,2. 操作系统环境变量。
  • 是的,我可以将 yml 放在同一个 jar 文件夹中并运行 java -jar myapp.jar 但使用 service.bat 脚本和 tomcat9 创建一个 Windows 服务它不起作用
【解决方案2】:

你可以检查official document,因为你的.yml文件已经和jar文件在同一个路径,你可以试试这个:

java -jar myproject.jar --spring.config.location=/path/to/your/yaml

【讨论】:

  • 还需要在位置添加file:前缀如下java -jar myproject.jar --spring.config.location=file:///some/path/application.yml
猜你喜欢
  • 2014-07-30
  • 2019-12-10
  • 2017-04-04
  • 2017-04-17
  • 2018-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-01
相关资源
最近更新 更多