Spring Boot-用于定义HTTP请求的baseUrl的配置文件(application.properties)

问题描述 投票:0回答:1

情况是,我有两个api项目,API A向HTTP B发送HTTP请求。两个API均部署到开发和生产环境。

我想实现的目标是:根据特定的配置文件(开发人员或生产人员)构建项目,以便代码可以使用特定的baseurl在正确的环境中与正确的api进行对话。

因此,如果我基于prod标志构建API A,我希望它使用特定的网址向在其自身的prod环境中部署的API B发出http请求。

java spring-boot api profile
1个回答
0
投票

似乎您是在指Maven的配置文件,但是您应该检查一下弹簧配置文件。这个概念应该改变:

您不应该build用于不同环境的不同工件。

相反,在服务A中创建弹簧轮廓:

application-dev.properties:

url.addr=dev-service-host:1234
application-prod.properties:

url.addr=prod-service-b-host:4321

然后使用--spring.profiles.active=dev(或prod)标志运行应用程序。

Spring boot将自动加载正确的定义,因为dev / prod与属性文件的后缀匹配


0
投票

您可以将Spring-Boot配置文件定义为:

spring.profiles.active=prod

您还应该在.properties中分析resources文件:

  • application-dev.properties中,您应该有api.b.url={api_b_url_on_dev_environment}

  • application-prod.properties中,您应该有api.b.url={api_b_url_on_prod_environment}

或者如果您不想在更改属性后重新编译应用程序,则可以在.properties文件之外使用。

为了使它们在应用程序的部署期间包括在内,请执行以下操作:

  • 在某些config目录中添加application-dev.propertiesapplication-prod.properties
  • 部署具有以下属性的应用程序:--spring.profiles.active=dev--spring.config.additional-location=config/application.properties

这样,外部配置文件属性将包含在部署过程中。这些.properties文件在Spring中具有最高优先级。

© www.soinside.com 2019 - 2024. All rights reserved.