gpt4 book ai didi

java - 以编程方式访问应用程序上下文和上下文位置

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

我有一些测试(我没有编写它们,我正在维护它们)使用 spring ContextConfiguration 注释来提供应用程序上下文:

@ContextConfiguration(locations = { "testCustomContext.xml" })
public class MyTest {
}

无论如何,有几个问题。我不太熟悉未指定文件的 spring 自定义上下文位置:/或类路径:/。这是什么意思?这个测试类路径上有很多同名的资源。他们都加载了吗?如果不是,Spring 如何知道加载哪个?

第二,有没有办法以编程方式访问以这种方式连接的 spring 上下文?

即是否有可以让我访问当前上下文的静态 Spring 类或 ThreadLocal 变量?

在此先感谢您的帮助。

最佳答案

您可以通过在测试类中 Autowiring 它来访问应用程序上下文:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class MyTest {

@Autowired
private ApplicationContext applicationContext;

// class body...
}

关于你的第二个问题:

I am not so familiar with spring custom context locations that don't specify file:/ or classpath:/. What does it mean? There are a lot of resources on this test class path with that name. Are they all loaded? If not, how does Spring know which to load?

来自 Java 文档:

A plain path — for example, "context.xml" — will be treated as a classpath resource that is relative to the package in which the specified class is defined. A path starting with a slash is treated as an absolute classpath location, for example: "/org/springframework/whatever/foo.xml". A path which references a URL (e.g., a path prefixed with classpath:, file:, http:, etc.) will be added to the results unchanged.

您可以在文档中了解 Spring 资源:http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/resources.html

@ContextConfiguration 的 JavaDocs 也可以为您提供更多知识。

我鼓励您学习 Spring Docs。

关于java - 以编程方式访问应用程序上下文和上下文位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13464113/

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