如何使用可配置属性部署 Spring 引导 Web 应用程序



经过研究,我了解到部署 Spring 启动 Web 应用程序的常用方法是作为 war 文件。但是,我有一个为公司制作的项目,现在我需要向他们发送项目进行试用,他们需要能够配置 application.properties 或指定数据库位置,credentials.so 我的问题是我是否需要以不同的方式部署项目,或者有没有办法使 war 文件应用程序属性以后可以修改?

您是否考虑过Spring Cloud Config Serverhttps://cloud.spring.io/spring-cloud-config/multi/multi__spring_cloud_config_server.html。

这是配置和外部化属性的最优雅方式。如果没有,我强烈建议合并该组件。使用您的 Spring 启动应用程序插入配置服务器,无需太多编码,您的应用程序将更易于管理和可扩展。

Spring Boot 应用程序实际上通常被打包为嵌入 Tomcat 的 Uber jar。如果需要,您可以使用 spring-boot maven 插件或类似的 gradle 插件来完成此操作。

进入此状态后,jar 可以正常启动,您可以在调用它时覆盖配置属性。

java $JAVA_OPTS -Dspring.service.name=my-service -jar /my-service.jar

编辑:这不是解决此问题的唯一方法,@piy26的答案是将外部配置注入企业就绪的弹簧启动应用程序的绝佳解决方案。但是,对于您所描述的情况,您将需要公司在那里设置自己的配置服务器,更重要的是,他们仍然必须覆盖配置服务器位置属性,以便应用程序将从其配置服务器中提取属性。对于您的示例,您似乎需要最简单的方法来覆盖 jar 中的应用程序属性。

最新更新