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

对应用程序上下文和上下文位置的编程访问

司空炯
2023-03-14

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

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

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

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

也就是说,是否有一个静态Spring类或ThreadLocal变量可以让我访问当前上下文?

提前谢谢你的帮助。

共有1个答案

殷承恩
2023-03-14

您只需在测试类中自动连接应用程序上下文,即可访问该上下文:

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

    @Autowired
    private ApplicationContext applicationContext;

    // class body...
}

至于你的第二个问题:

我不太熟悉spring自定义上下文位置,这些位置不指定file:/或classpath:/。这是什么意思?这个测试类路径上有很多同名的资源。都上膛了吗?如果不是,Spring如何知道要加载哪个?

来自Java文档:

普通路径(例如“context.xml”)将被视为相对于定义了指定类的包的类路径资源。以斜杠开头的路径被视为绝对类路径位置,例如:“/org/springframework/where/foo.xml”。引用URL的路径(例如,前缀为classpath:、file:、http:,等的路径)将被添加到结果中,而不会更改。

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

另外,用于@ContextConfiguration的JavaDocs可以为您提供更多的知识。

我鼓励你学习Spring文档。

 类似资料:
  • 问题内容: 问候 , 有什么方法可以将值从web.xml context-param转换为Spring上下文吗? 例如,我将web.xml中的值定义为: 我想将该值分配给bean属性为: 提前致谢? 问题答案: 是的- 本文介绍了详细信息。简而言之,您需要: 然后使用以下属性: 或搭配

  • 我多年来一直在使用Spring MVC,我试图理解与Spring Boot的一些关键区别。 你能帮我确认一下吗?或者让我明白我在这里遗漏了什么?

  • 我知道我需要在servlet上下文中注册用注释的类,以使webapp可访问。通常,我会按照以下方式来做: 我添加到根应用程序上下文中的所有其他配置类。下面是我的dispatcher初始值设定项通常的样子: 但是当我开始使用WebSockets时,事情变得更有趣了。要使websockets工作,必须将WebSoketConfig.class放到servlet上下文中。下面是我的WebSocketCo

  • Spring Boot对于如何使用Spring构建应用程序有一个看法:例如它具有常规配置文件的常规位置,以及用于常见管理和监视任务的端点。Spring Cloud建立在此之上,并添加了一些可能系统中所有组件将使用或偶尔需要的功能。 引导应用程序上下文 一个Spring Cloud应用程序通过创建一个“引导”上下文来进行操作,这个上下文是主应用程序的父上下文。开箱即用,负责从外部源加载配置属性,还解

  • 编写一个简单的spring程序从filepathxmlapplication上下文中读取bean,但得到以下异常。 但我确信在可以访问xml bean定义文件。

  • 我正在阅读spring framework文档,现在我正在讨论应用程序范围概念。关于这个概念的文档是这样说的: 这有点类似于Spring单例bean,但有两个重要的区别:它是每个ServletContext的单例,而不是每个Spring ApplicationContext的单例 对我来说,不清楚的是我们如何想象Spring应用程序上下文和Servlet上下文之间的关系。 那么,Spring应用程