gpt4 book ai didi

java - RunWith 和 ContextConfiguration 奇怪的行为

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:32:36 26 4
gpt4 key购买 nike

我有这个非常简单的类:

 @RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath*:/application-context-this-does-not-exist.xml"})
public class HTMLSourceExtractorImplTest {

@Autowired
ApplicationContext context;

@Test
public void test(){
String [] beans = context.getBeanDefinitionNames();
for(String bean : beans){
System.out.println(bean);
}
System.out.println("Testing");
}
}

在类路径中指定的上下文文件不存在。我几乎可以输入我想要的任何名称,并且代码不会中断。我的意思是测试运行得很好,就好像那个文件真的存在一样。

如果我做了一个小改动,从 : classpath*classpath ,然后它发出尖叫声,说这个文件不存在,这是我期望的行为在第一种情况下也是如此。

Spring 版本 3.2.3.RELEASE。

有人可以解释这种奇怪的行为吗?

编辑

建议的日志内容:

     20:47:26,923 INFO  [GenericApplicationContext] Refreshing org.springframework.context.support.GenericApplicationContext@3df6c65c: startup date [Fri Jun 07 20:47:26 PDT 2013]; root of context hierarchy

我什至尝试从应用程序上下文中输出所有 beans:

  org.springframework.context.annotation.internalConfigurationAnnotationProcessor
org.springframework.context.annotation.internalAutowiredAnnotationProcessor
org.springframework.context.annotation.internalRequiredAnnotationProcessor
org.springframework.context.annotation.internalCommonAnnotationProcessor
org.springframework.context.annotation.ConfigurationClassProcessor.importAwareProcessor

在我看来,如果使用通配符,Spring 将创建一个默认的空应用程序上下文

最佳答案

引用自 JavaDoc 可能会回答您的问题:

/**
* Pseudo URL prefix for all matching resources from the class path: "classpath*:"
* This differs from ResourceLoader's classpath URL prefix in that it
* retrieves all matching resources for a given name (e.g. "/beans.xml"),
* for example in the root of all deployed JAR files.
* @see org.springframework.core.io.ResourceLoader#CLASSPATH_URL_PREFIX
*/
String CLASSPATH_ALL_URL_PREFIX = "classpath*:";

由于在您的类路径中没有匹配名称 application-context-this-does-not-exist.xml 的 XML 文件,您的配置等于 @ContextConfiguration(locations={ }) => 清空应用上下文

然而,当您使用 CLASSPATH_URL_PREFIX = "classpath:" 时,这等于说“加载这个不存在的文件” => 错误加载上下文配置.

关于java - RunWith 和 ContextConfiguration 奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16985770/

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