작성
·
1.2K
0
jobLauncherTestUtils에 강의에서도 보면 빨간 밑줄표시가 되어 있는데요
Could not autowire. No beans of 'JobLauncherTestUtils' type found
경고 문구를 보면 위에처럼 해당 타입의 빈을 찾을수 없다는 표시인데 실행하면 잘 되더라구요..
그냥 무시하기에는 찝찝해서 왜 이런건지 혹시 알 수 있을까요?
답변 2
2
음..
실제 확인해 보면 JobLauncherTestUtils 클래스가 빈으로 등록되고 있습니다.
public class BatchTestContextCustomizer implements ContextCustomizer {
private static final String JOB_LAUNCHER_TEST_UTILS_BEAN_NAME = "jobLauncherTestUtils";
private static final String JOB_REPOSITORY_TEST_UTILS_BEAN_NAME = "jobRepositoryTestUtils";
@Override
public void customizeContext(ConfigurableApplicationContext context, MergedContextConfiguration mergedConfig) {
ConfigurableListableBeanFactory beanFactory = context.getBeanFactory();
Assert.isInstanceOf(BeanDefinitionRegistry.class, beanFactory,
"The bean factory must be an instance of BeanDefinitionRegistry");
BeanDefinitionRegistry registry = (BeanDefinitionRegistry) beanFactory;
registry.registerBeanDefinition(JOB_LAUNCHER_TEST_UTILS_BEAN_NAME,
new RootBeanDefinition(JobLauncherTestUtils.class));
registry.registerBeanDefinition(JOB_REPOSITORY_TEST_UTILS_BEAN_NAME,
new RootBeanDefinition(JobRepositoryTestUtils.class));
}
}
스프링 부트가 초기화 될 때 일부분인데
registry.registerBeanDefinition(JOB_LAUNCHER_TEST_UTILS_BEAN_NAME,
new RootBeanDefinition(JobLauncherTestUtils.class));
보시면 빈으로 정의하고 있습니다
인텔리제이가 인식하지 못할 수도 있습니다.
찝찝하기는 하지만 빈으로 정의하는 과정은 분명히 있으니 신경쓰지 않아도 될 것 같습니다.
1