问题标签 [context-configuration]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
516 浏览

java - 在 SpringJUnit4ClassRunner 中获取所有类型的 Bean

我很难为以下测试课程找到合适的答案:

我想从有界中收集所有 Spring 托管context services.xmlService.

我很确定一定有这样的东西,但我不知道我要搜索什么。

非常感谢您的帮助。

斯特凡

0 投票
1 回答
104 浏览

spring - 为什么在运行 Spring Integration 测试时出现 NoSuchBeanDefinedException

我有一个 Spring Boot 项目,其中一位开发人员针对内存数据库编写了集成测试。在我提出问题之前,这里有一些背景知识:
我们有以下 Maven 模块:
1) web-persistence:存储所有实体和接口以及相应的实现。所有这些类都在 package 中com.mycompany.persistence
2) web-services:它存储了我们所有的rest控制器和spring security相关的类。这些都在包com.mycompany.services
3) web-services 模块对 web-persistence 模块有 maven 模块依赖。
4) 在 web-services 模块中,我们定义了一个服务UserContextServiceImpl,它是接口的实现IUserContextService. 该服务基本上封装了 Spring 的 SecurityContextHolder 功能,只公开其方法所需的当前用户相关信息的那些部分,这样我们就不必在任何地方使用 SecurityContextHolder。实现类使用@Service("userContextService") 进行注释。
5) 接口IUserContextService在持久化模块中。持久性模块中还有另一个类,它通过在应用程序初始化时调用where is holdingAppDependecyHeper来实现并返回 UserContextService 的具体实例。ApplicationContextAwareappContext.getBean('userContextService')appContextApplicationContext
6) 现在我们不想在持久性模块中公开 Spring Security 类(因为这里没有上下文),因此上面的安排是通过调用getBean() method of applicationContext持久层类来通过服务获取当前用户信息AppDependencyHelper。然后使用此信息更新审计字段 createdBy 和 modifiedBy 使用EntityListener.
7) 实际应用程序仅使用单个ApplicationContext,其中持久层类和 Web 控制器都加载在一个 Spring 上下文中。
8) 应用程序运行时一切正常。但是,当我们的集成测试运行时,调用appContext.getBean('userContextService')失败并抛出NosuchBeanDefinitionException,因为它无法找到名为“userContextService”的 bean
9)现在最后是位于com.mycompany.persistence.embeddeddb包中的集成测试代码(仅给出相关细节):

现在的问题:
1)为什么它无法检索bean?我尝试添加com.mycompany.services如下

@ComponentScan({"com.mycompany.persistence","com.mycompany.services"})
但无济于事。
2)通过阅读我得到的任何内容,我能够理解的是,@ContextConfiguration需要提供 XML 文件或带注释的类或 WebApplicationInitializers(在我的情况下,因为我们只有一个 ApplicationContext)才能ApplicationContext从 @Configuration 类创建一个。但是我不能这样做,因为 maven 开始抱怨循环依赖,这是正确的,因为我的@Service注释类 UserContextServiceImpl位于 web-services 模块中,该模块依赖于已经编写测试用例类的 web-persistence 模块。
3) 我能想到的唯一解决方案是将所有集成测试类移动到 web-services 模块,这样我就可以告诉@ConfigurationContext它应该从中创建的所有类。ApplicationContext对吗?

最后一点:当我运行测试时,ApplicationContext该类是类型。GenericApplciationContext当我运行应用程序时,它显然AnnotatedEmbeddedWebApplicationContext

请让我知道是否有解决此问题的方法?

0 投票
1 回答
5349 浏览

java - Spring上下文层次结构中的bean销毁顺序

说当 Spring 上下文层次结构关闭时,没有保证 bean 被销毁的顺序是否正确?例如,子上下文中的 bean 将在父上下文之前被销毁。从一个最小的例子来看,上下文的破坏似乎在上下文之间完全不协调(很奇怪)。两个上下文都注册了一个关闭钩子,稍后将在不同的线程中执行。

给出输出:

有没有办法强制以“正确”的顺序关闭上下文?

0 投票
2 回答
1791 浏览

spring - 与纯 @ContextConfiguration 相比,使用 @ContextHierarchy 有什么优势

嗨,我不明白使用 @ContextHierarchy 有什么好处,如下所示:

过度使用带有位置参数的单个 @ContextConfiguration,如下所示:

在每种情况下,应用程序上下文在不同的 junit 测试类之间共享。

0 投票
1 回答
1561 浏览

java - 从 Spring Framework 4.2.9 升级到 4.3+ 时的自定义 ContextConfiguration Loader 问题

在将 Spring Framework spring-test 依赖项从 4.2.9 升级到 4.3.9 后,我在运行集成测试时遇到了一些问题。

我正在使用一个 ContextConfiguration 类,它实现了 spring 测试SmartContextLoader,它允许我加载由配置文件拆分的不同 .xml 配置文件。根据当前的 spring 配置文件,它将运行该配置文件的特定 bean。

ContextConfigurationLoader在版本中运行得非常好,4.2.9但是在升级到版本之后4.3,我正在努力解决这个问题。

我包括ContextConfigurationLoader我在集成测试中创建的,就像这样。

长这样ContextConfigurationLoader

最后,这是我尝试运行测试后得到的错误响应。

感谢您的帮助,如果您需要更多信息,请告诉我。

我发现的一种解决方案是将所有 .xml 配置文件包含在一个文件中并使用这样的@ContextConfiguration注释。

但这需要对测试之外的其余代码进行一些其他更改。这也无助于解释为什么我当前的实现在最新的 Spring Framework 弹簧测试版本上不起作用。

0 投票
2 回答
1587 浏览

spring-boot - 在 IT 测试中使用带有 @ContextConfiguration 的 RestTemplateBuilder

我在 Spring Boot 应用程序中使用带有 @ContextConfiguration 的 RestTemplateBuilder 时遇到了问题(我尝试添加 @SpringBootTest、@RunWith(SpringRunner.class) 注释但没有任何运气)。

任何帮助表示赞赏。这是背景:

我对我的班级进行了如下注释:

RestClient 类将 RestTemplateBuilder 自动装配为:

MyService 类自动装配 RestClient。当我尝试使用@ContextConfigurationwith加载应用程序SpringBootContextLoader时,出现以下错误:

0 投票
1 回答
180 浏览

groovy - 使用 @ContextHierarchy 的 Groovy 测试类

我将 Groovy 用于我的 Spring 应用程序,并尝试在我的测试中使用多个 XML bean 配置。我尝试使用@ContextHierarchy但以下用法示例不起作用:

我也试过:

但效果不佳。

据我了解,Groovy 不喜欢“{”“}”,因为它的含义不同......?

如何在定义了两个配置 xml 的 groovy 中编写 Testclass?

0 投票
0 回答
1112 浏览

java - ContextConfigLocation java 配置

我对 java 和 spring 还是很陌生,在一些与上下文相关的主题上我仍然有一些麻烦。我正在尝试从属性文件加载我的上下文配置文件。我想将我的 spring 3 应用程序升级到 spring 4。下面的配置以前工作正常,但现在我收到错误:

配置文件:

web.xml

CustomServletListener.java

servlet.properties

我发现在我的侦听applicationContext.xml器运行之前分配给参数。contextConfigLocation我是否理解正确,因为 spring 4 dispatcherServlet 现在分配了 contextConfigLocation 的默认值(如果未定义)?你能给我任何想法,我如何在不将整个配置移动到 java 类的情况下实现这一点?

0 投票
1 回答
916 浏览

xml - web xml spring中contextconfiglocation的用途是什么?

ContextConfigLocation在 Spring 中, and的目的是什么InternalResourceViewResolver?我没有得到这些课程的目的。

0 投票
1 回答
813 浏览

java - 无法识别 @ContextConfiguration 的参数类

在下面的测试类中

编译器在行中突出显示参数类

作为一个错误。类 CDPlayerConfing 很容易找到。它被标记为 Config 类

我错过了一些进口吗?