Spring 引导 - 配置文件 (application.properties) 为 HTTP 请求定义 baseUrl
Spring Boot - Profiles (application.properties) to define baseUrl for HTTP requests
情况是我有两个 api 项目,API A 向 API B 发出 HTTP 请求。两个 API 都部署到开发和生产环境。
我想要实现的是:基于特定的配置文件(dev 或 prod)构建项目,以便代码可以使用特定的 baseurl 与正确的 api 在正确的环境下。
因此,如果我基于 prod 标志构建 API A,我希望它使用特定的 url 向部署在它自己的 prod 上的 API B 发出 http 请求环境。
看起来您指的是 maven 的配置文件,但是您应该查看 spring 配置文件。这个概念应该改变:
您不应该为不同的环境构建 不同的工件。
而是在服务 A 中创建 spring 配置文件:
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 引导将自动加载正确的定义,因为 dev/prod 匹配属性文件的后缀
您可以将 Spring-引导配置文件定义为:
spring.profiles.active=prod
您还应该在 resources
:
中分析 .properties
个文件
在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.properties
和 application-prod.properties
- 部署具有以下属性的应用程序:
--spring.profiles.active=dev
和 --spring.config.additional-location=config/application.properties
这样,外部配置的属性将包含在部署过程中。这些 .properties
个文件在 Spring 中具有最高优先级。
情况是我有两个 api 项目,API A 向 API B 发出 HTTP 请求。两个 API 都部署到开发和生产环境。
我想要实现的是:基于特定的配置文件(dev 或 prod)构建项目,以便代码可以使用特定的 baseurl 与正确的 api 在正确的环境下。
因此,如果我基于 prod 标志构建 API A,我希望它使用特定的 url 向部署在它自己的 prod 上的 API B 发出 http 请求环境。
看起来您指的是 maven 的配置文件,但是您应该查看 spring 配置文件。这个概念应该改变:
您不应该为不同的环境构建 不同的工件。
而是在服务 A 中创建 spring 配置文件:
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 引导将自动加载正确的定义,因为 dev/prod 匹配属性文件的后缀
您可以将 Spring-引导配置文件定义为:
spring.profiles.active=prod
您还应该在 resources
:
.properties
个文件
在
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.properties
和application-prod.properties
- 部署具有以下属性的应用程序:
--spring.profiles.active=dev
和--spring.config.additional-location=config/application.properties
这样,外部配置的属性将包含在部署过程中。这些 .properties
个文件在 Spring 中具有最高优先级。