Loading...
Spring Framework Reference Documentation 7.0.2의 Mixing XML, Groovy Scripts, and Component Classes의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
때때로 테스트를 위한 ApplicationContext를 구성하기 위해 XML 설정 파일, Groovy 스크립트, 그리고 컴포넌트 클래스(일반적으로 @Configuration 클래스)를 혼합해서 사용하는 것이 바람직할 수 있습니다. 예를 들어, 운영 환경에서 XML 설정을 사용한다면, 테스트에서는 특정 Spring-managed 컴포넌트를 구성하기 위해 @Configuration 클래스를 사용하기로 결정할 수 있고, 그 반대의 경우도 있을 수 있습니다.
더 나아가, 일부 서드파티 프레임워크(예: Spring Boot)는 XML 설정 파일, Groovy 스크립트, 그리고 @Configuration 클래스와 같은 서로 다른 종류의 리소스로부터 동시에 ApplicationContext를 로딩하는 것에 대해 일급 지원을 제공합니다. Spring Framework는 역사적으로 표준 배포에 대해서는 이를 지원하지 않았습니다.
결과적으로, Spring Framework가 spring-test 모듈에서 제공하는 대부분의 SmartContextLoader 구현은 각 테스트 컨텍스트에 대해 하나의 리소스 타입만 지원합니다. 그러나 이것이 둘 다 사용할 수 없다는 의미는 아닙니다. 일반적인 규칙에 대한 한 가지 예외는 GenericGroovyXmlContextLoader와 GenericGroovyXmlWebContextLoader가 XML 설정 파일과 Groovy 스크립트를 동시에 지원한다는 점입니다. 또한, 서드파티 프레임워크는 @ContextConfiguration을 통해 locations와 classes 둘 다의 선언을 지원하도록 선택할 수 있으며, TestContext 프레임워크의 표준 테스트 지원과 함께 다음과 같은 선택지를 가질 수 있습니다.
리소스 위치(예: XML 또는 Groovy)와 @Configuration 클래스를 사용하여 테스트를 구성하려면 둘 중 하나를 엔트리 포인트로 선택해야 하며, 선택한 것이 다른 것을 포함하거나 임포트해야 합니다. 예를 들어, XML 또는 Groovy 스크립트에서는 컴포넌트 스캐닝을 사용하거나 이를 일반적인 Spring 빈으로 정의함으로써 @Configuration 클래스를 포함할 수 있습니다.
반면, @Configuration 클래스에서는 @ImportResource를 사용하여 XML 설정 파일이나 Groovy 스크립트를 임포트할 수 있습니다. 이러한 동작은 운영 환경에서 애플리케이션을 구성하는 방식과 의미상 동일하다는 점에 유의해야 합니다. 운영 설정에서는 운영 ApplicationContext가 로딩되는 XML 또는 Groovy 리소스 위치 집합이나 @Configuration 클래스 집합 중 하나를 정의하지만, 여전히 다른 종류의 설정을 포함하거나 임포트할 자유는 가지고 있습니다.
Context Configuration with Component Classes
Context Configuration with Context Customizers