[SPRING] RunWith 및 ContextConfiguration 이상한 동작
SPRINGRunWith 및 ContextConfiguration 이상한 동작
저는이 아주 간단한 수업을 가지고 있습니다 :
@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 *에서 classpath로 조금 변경하면이 파일이 존재하지 않는다고 말하며 이는 첫 번째 경우에도 기대했던 동작입니다.
Spring Version 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
나는 심지어 애플리케이션 컨텍스트에서 모든 빈을 출력하려고 시도했다.
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은 기본 빈 Application Context를 생성 할 것입니다.
해결법
-
==============================
1.JavaDoc의 견적은 아마 당신의 질문에 답할 것입니다 :
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*:";
classpath에 application-context-this-does-not-exist.xml이라는 이름의 XML 파일이 없으므로 @ContextConfiguration (locations = {}) => 빈 응용 프로그램 컨텍스트와 구성이 동일합니다.
그러나 CLASSPATH_URL_PREFIX = "classpath :"를 사용하면 "존재하지 않는 파일로드"=> 컨텍스트 구성로드 오류가 발생합니다.
from https://stackoverflow.com/questions/16985770/runwith-and-contextconfiguration-weird-behaviour by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring MVC에서 Gzip 압축 된 요청 바디를 디코딩하는 법 (0) | 2019.02.11 |
---|---|
[SPRING] 전체 페이지를 가져 오려면 PageRequest에서 계산 쿼리를 비활성화하는 방법? (0) | 2019.02.11 |
[SPRING] Spring Security는 인증 된 사용자 및 인증되지 않은 사용자를 위해, 휴식 서비스에서 사용자 정보를 얻습니다. (0) | 2019.02.11 |
[SPRING] Spring MVC : Error 400 클라이언트가 보낸 요청의 구문이 올바르지 않습니다. (0) | 2019.02.11 |
[SPRING] 스프링 보안 / j_spring_security_check을 찾을 수 없음 404 (0) | 2019.02.11 |