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

M Y*_*Yil 3 java api profile spring-boot

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

我想要实现的是:基于特定配置文件(dev 或 prod)构建项目,以便代码可以使用特定的 baseurl 在正确的环境中与正确的 api 进行对话。

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

Mar*_*nik 6

看起来您指的是 Maven 的配置文件,但是您可能应该查看 spring 配置文件。这个概念应该改变:

您不应该为不同的环境构建不同的工件。

相反,在服务 A 中创建一个 spring 配置文件:

application-dev.properties:

url.addr=dev-service-host:1234
Run Code Online (Sandbox Code Playgroud)
application-prod.properties:

url.addr=prod-service-b-host:4321
Run Code Online (Sandbox Code Playgroud)

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

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