인프런 커뮤니티 질문&답변

xxoals1021님의 프로필 이미지

작성한 질문수

스프링 배치

Spring Batch Test

jobLauncherTestUtils 빨간 줄 질문입니다.

작성

·

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

idea64_Q1zkYn2x3m.png

 

위 그림처럼 2개의 플러그인을 설치하시면 됩니다.

  • Jakarta EE: Batch Application

  • Spring Batch

참고: 빨간줄 나와도 잘됩니다. 저는 그냥 찝찝해서 설치해서 빨간줄 안 나오게 했습니다.