java - 在 Apache Tomcat 上部署 .war 时如何使用给定的 application.properties 文件?
问题描述
我的任务是在 Apache Tomcat 上部署 ROOT.war 应用程序。下面是 ROOT.war 文件内部的样子:
我被告知的应用程序使用 Postgresql 作为其数据库。我已经把那个整理好了。
我只想知道如何使用他们提供的这个 application.properties 配置文件在 Apache Tomcat 上运行这个应用程序。这是它的样子:
非常感谢和问候,杰里米
解决方案
有多种方法可以指定application.properties
文件的位置。有关如何加载属性的完整列表,请参阅Spring Boot 文档。
SpringApplication 从以下位置的 application.properties 文件中加载属性并将它们添加到 Spring 环境中:
当前目录的
/config
子目录当前目录
一个类路径
/config
包类路径根
它接着说:
如果您不喜欢
application.properties
作为配置文件名,您可以通过指定spring.config.name
环境属性来切换到另一个文件名。您还可以使用spring.config.location
environment 属性(以逗号分隔的目录位置或文件路径列表)来引用显式位置。
在众多选项中,我要强调:
推荐:根据这个答案,您可以在 Tomcat 上下文 XML 文件中指定位置,尽管 Spring 文档中没有明确指定:
<Context> <Parameter name="spring.config.location" value="file:/path/to/config/folder" /> </Context>
修改
.war
文件并将文件放在WEB-INF/classes/config
orWEB-INF/classes
文件夹中。如果您可以指定正在运行的 Tomcat 的工作目录,请将文件放在该目录或
config
子文件夹中。如果您可以为正在运行的 Tomcat 指定 JVM 选项,请添加
-Dspring.config.location=file:/path/to/config/folder
并将文件放置在那里。
推荐阅读
- python - 在 Python 中生成原始毕达哥拉斯三元组的列表
- odbc - 如何解析json并根据传入的json数据创建触发器
- mysql - Mysql 得到一个转折的地方
- spring-cloud-dataflow - 在 SCDF 仪表板中启动任务时违反“task_metadata_fk”中的外键约束
- mule - 为什么我得到错误无法仅在一个环境中找到配置属性?
- mysql - Sequelize:添加备份数据库或多数据库
- android - 使用改造从服务器下载 pdf
- asp.net-mvc - Knockout 和 ASP.NET MVC 编辑表单在映射后显示重复行
- c# - 如何在单元测试中以管理员身份运行 sc.exe
- powershell - 使用 Powershell 脚本在 ESXi AD 中更改管理员组名称的问题