gpt4 book ai didi

java - SpringBoot SpringApplicationBuilder

转载 作者:行者123 更新时间:2023-11-30 11:07:24 25 4
gpt4 key购买 nike

我需要通过创建 Cucumber 集成测试来测试我的 Spring 应用程序代码。我正在使用 SpringApplicationBuilder 在触发实际逻辑之前启动我的应用程序,并使用以下语法来执行此操作:-

application = new SpringApplicationBuilder()
.parent(new Object[]{"classpath:file1.xml", "classpath:file2.xml"})
.profiles("abc")
.properties("name:value") [It has 5/6 (name:value) pairs here]*
.showBanner(false)
.logStartupInfo(true)
.headless(true)
.application()
.run();

我的 Spring 应用程序正确启动。但是,它没有获取我传递给 SpringApplicationBuilder() 的属性(名称、值)对的值。我尝试了以下方法来设置它们:-

  1. 如上所述使用名称值对
  2. 使用(名称,值)对的 HashMap 列出项目
  3. 创建一个 ConfigurableEnvironment,检索 MutablePropertySources并在其中设置我的属性。

这些选项都不起作用,因此当应用程序启动并且代码尝试访问某些系统属性值时,它会中断。

关于如何解决这个问题的任何想法。非常感谢所有帮助!我需要将这些属性作为 Spring 属性以确保应用程序正常运行。也许我可以通过其他方式使用 Spring Prop 测试我的代码?如果可以,我该怎么做?

最佳答案

您可以配置如下属性:

application = new SpringApplicationBuilder()
.parent(new Object[]{"classpath:file1.xml", "classpath:file2.xml"})
.profiles("abc")
.properties("key1:test1", "key2:test2")
.showBanner(false)
.logStartupInfo(true)
.headless(true)
.application()
.run();

现在,使用 @Value 注释检索属性:

@Value("${key1}")
String val;

val 变量将被赋值为 test1

关于java - SpringBoot SpringApplicationBuilder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28936320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com