基于请求的同一Spring Boot Application的多个属性文件

问题描述

我有一个Spring Boot应用程序,用于使用Cucumber和Selenium进行UI测试自动化。 该应用程序有望测试多种环境。
首先,我创建了具有URL,凭据等必需属性的json文件,并在触发测试(mvn test -DconfigFile=config/env1_config.json)时加载了该文件(将文件路径作为属性传递并使用它)。

我看到在运行测试时使用配置文件是一种选择-Dspring.profiles.active=client1,但由于我将在Jenkins中配置多个管道以测试多个环境以将同一项目与不同的配置文件一起使用,因此它将克隆整个项目并运行测试在与管道相对应的工作空间中。为了避免保留该项目的多个副本,我计划使用Rest API触发Selenium测试并在Git中包含配置文件。

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

解决方法

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

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

您可以阅读更多here

,

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

您可以在同一个网站上参考以下链接。

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. 春季云服务器:- https://www.youtube.com/watch?v=gb1i4WyWNK4&list=PLqq-6Pq4lTTaoaVoQVfRJPqvNTCjcTvJB&index=11
  2. spring cloud客户端:-https://www.youtube.com/watch?v=E2HkL766VHs&list=PLqq-6Pq4lTTaoaVoQVfRJPqvNTCjcTvJB&index=12
,

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

由于我想创建一个Rest API并根据api请求在API实现中使用来自不同配置文件的属性, 我创建了一个Spring Cloud Config Server应用程序,该应用程序连接到git中的应用程序属性存储库,并在我的Rest API实现的服务层中消耗了Spring Cloud Config Server(主机:端口/应用程序/配置文件)公开的Rest API。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...