【发布时间】:2017-10-18 14:23:10
【问题描述】:
我正在使用带有 Maven 的 Spring Framework (Spring Boot)。我正在 Tomcat 8.5 上(手动)部署 .war。我的应用程序已出售给多个客户。
我有 2 个配置文件。主 application.yml 包含所有安装通用的选项,以及每个安装唯一的 application-custom.yml(数据库凭据、邮件等)。当我更新我的war包时,这个自定义配置文件不能被删除(Tomcat删除配置文件并用最新的war替换它)。但我不希望在每次更新时将自定义文件替换为新文件。
为了修复它,我的 Spring 配置文件实际上(手动)复制到了 Tomcat 的 webapps 路径中(这样更新时不会被删除):
C:\Program Files\Apache Software Foundation\Tomcat 8.5\webapps\application-custom.yml
但这不是我猜的最佳解决方案。因为在每次新安装时,我必须自己创建自定义配置文件。有没有更好的解决方案?
【问题讨论】:
-
您应该更好地描述您面临的实际问题,而不是询问您如何实施特定的解决方案。为什么首先需要将 custom.yml 复制到 application.yml ?对“为什么”的解释可能会让您对现成的替代解决方案感到惊讶。
-
也许你可以使用不同的配置文件——一个用于开发的配置文件和一个用于生产的配置文件?就像 Vilmantas 写的:为什么要将配置文件复制到不同的文件夹中?
-
谢谢,我换了话题。辅助配置文件是客户特定的。所以即使在更新战争之后它也必须是相同的(因为当我更新战争文件时,Tomcat 将它替换为战争中的那个)。