根据请求,相同 Spring 启动应用程序的多个 属性 文件

Multiple property files for same Spring Boot Application based on request

我有一个 Spring 引导应用程序,用于 UI 使用 Cucumber 和 Selenium 的测试自动化。 该应用程序预计将测试多个环境。
首先,我创建了 json 文件,其中包含 URL、凭据等所需的属性,并加载它(将文件路径作为 属性 传递并使用它),同时触发测试 (mvn test -DconfigFile=config/env1_config.json ).

我看到使用配置文件,而 运行宁测试是一个选项-Dspring.profiles.active=client1,但由于我将在 Jenkins 中配置多个管道以测试多个环境以使用具有不同配置文件的同一项目,它将在与管道对应的工作区中克隆整个项目和 运行 测试。为了避免保留项目的多个副本,我计划使用 Rest API 来触发 Selenium 测试并在 Git.

中包含配置文件

是否可以创建多个具有自定义属性的应用程序属性文件,将它们放在 Git 中并在 Spring 启动应用程序中使用所需的 属性 文件(在 Rest API impl) 基于 属性 或 RequestParam 使用 Spring Cloud Config 或其他?

您可以使用 spring 引导配置文件并将其作为 maven 参数传递

只需将 -Dspring.profiles.active=test1 作为命令行参数传递

你可以阅读更多here

您可以通过设置 spring.profiles.active 环境变量来实现。就像您按照约定 application-dev.properties、application-qa.properties 为每个环境使用 属性 文件一样。你可以定义你 spring.profiles.active 为 dev 和 qa.

您可以参考以下内容link以了解更多信息。

https://stackabuse.com/spring-boot-configuring-properties/

您可以使用Spring云服务器和客户端。

创建一个具有依赖关系的项目Spring cloud server并在那里创建配置文件(appilcation.properties)。在其他微服务中使用该配置文件 只需在其他项目中添加 spring cloud cilent 依赖并在 application.properties

中添加此行
spring.cloud.config.uri:[your spring cloud server project url]

参考:-

  1. spring云服务器:- https://www.youtube.com/watch?v=gb1i4WyWNK4&list=PLqq-6Pq4lTTaoaVoQVfRJPqvNTCjcTvJB&index=11
  2. spring 云客户端:- https://www.youtube.com/watch?v=E2HkL766VHs&list=PLqq-6Pq4lTTaoaVoQVfRJPqvNTCjcTvJB&index=12

分享我最终采用的方法,因为它有一天可能会对某人有所帮助。

因为我想创建一个 Rest API 并根据 api 请求在 API 实现中使用来自不同配置文件的属性, 我创建了一个 Spring Cloud Config Server 应用程序,它连接到 git 中的应用程序属性 repo,我使用了 Spring Cloud Config Server 公开的 Rest APIs(主机:port/app/profile) 在我的 Rest API 实现的服务层中。