当前位置: 首页 > 知识库问答 >
问题:

如何在spring测试中设置环境变量或系统属性?

薛保臣
2023-03-14

我想编写一些测试,检查部署的WAR的XML Spring配置。不幸的是,有些bean需要设置一些环境变量或系统属性。在使用@ContextConfiguration的方便测试样式时,如何在spring bean初始化之前设置环境变量?

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:whereever/context.xml")
public class TestWarSpringContext { ... }

共有1个答案

贾建茗
2023-03-14

可以在静态初始值设定项中初始化System属性:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:whereever/context.xml")
public class TestWarSpringContext {

    static {
        System.setProperty("myproperty", "foo");
    }

}

静态初始化器代码将在初始化spring应用程序上下文之前执行。

 类似资料:
  • 问题内容: 我想编写一些测试来检查已部署WAR的XML Spring配置。不幸的是,某些bean需要设置一些环境变量或系统属性。通过@ContextConfiguration使用便捷的测试样式时,如何在初始化Spring bean之前设置环境变量? 如果我用注释配置应用程序上下文,那么在初始化spring上下文之前,我看不到钩子可以在其中做些事情。 问题答案: 您可以在静态初始化程序中初始化Sys

  • 我无法从环境变量中获取值。有很多类似的问题。但没有一个对我有用 应用程序.属性 系统变量 但当我硬编码时,它工作得很好。 更新

  • 问题内容: 如何在应用程序上下文中读取系统环境变量? 我想要类似的东西: 要么 取决于环境。 我的应用程序上下文中可以有这样的东西吗? 根据系统环境变量设置实际值的地方 我正在使用Spring 3.0 问题答案: 你接近:o)Spring 3.0添加了Spring Expression Language。你可以使用 结合应该可以解决你的问题。 还请注意@yiling的评论: 为了访问系统环境变量(

  • 问题内容: JVM中的系统属性System.getProperties()和环境变量System.getenv()有什么区别? 问题答案: 我认为两者之间的区别归结为访问。系统环境变量可以由任何进程访问,而Java系统属性只能由添加到它们的进程访问。 另外,正如Bohemian所说,env变量是在OS中设置的(但是可以通过Java设置),而系统属性则作为命令行选项传递或通过设置setPropert

  • 问题内容: 我们使用spring 3.1的新环境配置文件功能。当前,我们通过在将应用程序部署到的服务器上设置环境变量spring.profiles.active = xxxxx来设置活动配置文件。 我们认为这是次优的解决方案,因为我们要部署的war文件应该只具有一个附加的属性文件,该文件设置了应加载spring应用上下文的环境,因此部署不依赖于服务器上设置的某些环境变量。 我试图弄清楚该怎么做,发

  • 问题内容: 我需要在python脚本中设置一些环境变量,并且我希望从python调用的所有其他脚本(shell脚本)(将是子进程)来查看设置的环境变量。该值为数字。 如果这样做,它会抱怨说1必须是字符串。我也想知道一旦设置它,如何在python(在脚本的后半部分)中读取环境变量。 问题答案: 你可能需要考虑其他方面的代码健壮性; 当你将整数值的变量存储为环境变量时,请尝试 然后为了进行检索,请考虑