从外部配置读取值
Posted
技术标签:
【中文标题】从外部配置读取值【英文标题】: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.ymlserver.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 类中?
【问题讨论】:
是否要始终指定端口? 【参考方案1】:您可以使用外部 .properties 来执行此操作,从 application.properties 中删除端口配置并将其放入外部文件中。在 Spring Boot 应用程序中,您可以使用@PropertySource
将这些配置文件包含在环境变量中。
【讨论】:
以上是关于从外部配置读取值的主要内容,如果未能解决你的问题,请参考以下文章