【问题标题】:To read value from external configuration从外部配置读取值
【发布时间】:2016-10-29 09:03:51
【问题描述】:

我们正在开发 Spring Boot 应用程序。我们的应用程序运行三个服务器(jvm)。假设这三个是:服务器,工人和myui。这三个以相同的服务器顺序运行 -> worker -> myui。出三两运行tomcat服务器。

我的问题是,如果运行第一台服务器,那么 Tomcat 会默认获取 8080 端口,这对我来说没问题。但是当我们运行myui时,这也启动了Tomcat,但是它抛出了“Address Already Bind”异常,因为8080已经被服务器消费了。

构建有三种类型的jar:

我的应用程序

配置

  • application.properties
  • application.yml

server.jar

worker.jar

myui.jar

这些 jar 中的每一个都可能具有与 config 文件夹中相同的文件。但是它们将被嵌入到 jar 中并且它们不会被配置。在我的构建中,将允许用户更新 application.properties 和 application.yml。

我们尝试在 application.properties 中将“server.port”外部提供为 8090。它在 IDE 中运行良好。但它不适用于构建,因为在构建中“/config/application.properties”的优先级超过了保存在 jar 中(如果有的话)并且它抛出地址已经绑定异常。

如何在“/config/application.properties”中配置它,以便可以将其配置为更改为运行 myui。如何将这些端口值从外部属性访问到我的资源 java 类中?

【问题讨论】:

  • 是否要始终指定端口?

标签: java tomcat spring-boot maven-3


【解决方案1】:

您可以使用外部 .properties 来执行此操作,从 application.properties 中删除端口配置并将其放入外部文件中。在 Spring Boot 应用程序中,您可以使用@PropertySource 将这些配置文件包含在环境变量中。

【讨论】:

    猜你喜欢
    • 2020-11-18
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    • 1970-01-01
    • 2015-11-30
    • 2023-03-07
    • 2016-01-11
    • 2021-05-30
    相关资源
    最近更新 更多