Loading...
Spring Framework Reference Documentation 7.0.2의 Context Configuration with Context Initializers의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
context initializers를 사용하여 테스트를 위한 ApplicationContext를 구성하려면,
테스트 클래스에 @ContextConfiguration을 어노테이션으로 지정하고 initializers
attribute를 ApplicationContextInitializer를 구현하는 클래스에 대한 reference를
포함하는 array로 구성해야 합니다. 선언된 context initializers는 이후 테스트를 위해
로드되는 ConfigurableApplicationContext를 초기화하는 데 사용됩니다.
각 선언된 initializer에서 지원하는 구체적인 ConfigurableApplicationContext 타입은 사용 중인
SmartContextLoader(일반적으로 GenericApplicationContext)에 의해 생성되는
ApplicationContext 타입과 호환되어야 합니다. 또한, initializer가 호출되는 순서는
Spring의 Ordered 인터페이스를 구현하는지 또는 Spring의 @Order 어노테이션이나 표준
@Priority 어노테이션이 지정되어 있는지에 따라 달라집니다. 다음 예제는
initializers를 사용하는 방법을 보여 줍니다:
1@ExtendWith(SpringExtension.class) 2// ApplicationContext will be loaded from TestConfig 3// and initialized by TestAppCtxInitializer 4@ContextConfiguration( 5 classes = TestConfig.class, 6 initializers = TestAppCtxInitializer.class) // (1) 7class MyTest { 8 // class body... 9}
| 1 | configuration class와 initializer를 사용하여 configuration을 지정. |
1@ExtendWith(SpringExtension::class) 2// ApplicationContext will be loaded from TestConfig 3// and initialized by TestAppCtxInitializer 4@ContextConfiguration( 5 classes = [TestConfig::class], 6 initializers = [TestAppCtxInitializer::class]) // (1) 7class MyTest { 8 // class body... 9}
| 1 | configuration class와 initializer를 사용하여 configuration을 지정. |
또한 @ContextConfiguration에서 XML configuration files, Groovy scripts, 또는
컴포넌트 classes의 선언을 완전히 생략하고 대신 ApplicationContextInitializer
classes만 선언할 수도 있으며, 이들은 그 후 context에 빈을 등록하는 역할을
수행합니다. 예를 들어, XML files 또는 configuration classes로부터 빈 정의를
프로그래밍 방식으로 로드하는 방식으로 수행할 수 있습니다.
다음 예제는 이를 수행하는 방법을 보여 줍니다:
1@ExtendWith(SpringExtension.class) 2// ApplicationContext will be initialized by EntireAppInitializer 3// which presumably registers beans in the context 4@ContextConfiguration(initializers = EntireAppInitializer.class) // (1) 5class MyTest { 6 // class body... 7}
| 1 | initializer만 사용하여 configuration을 지정. |
1@ExtendWith(SpringExtension::class) 2// ApplicationContext will be initialized by EntireAppInitializer 3// which presumably registers beans in the context 4@ContextConfiguration(initializers = [EntireAppInitializer::class]) // (1) 5class MyTest { 6 // class body... 7}
| 1 | initializer만 사용하여 configuration을 지정. |
Context Configuration with Context Customizers
Context Configuration Inheritance