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

조주연님의 프로필 이미지
조주연

작성한 질문수

[스프링 배치 입문] 예제로 배우는 핵심 Spring Batch

일단 실행 - Hello, World (스프링 배치 구조 익히기)

빌드가 실패해요 ㅠㅠ

작성

·

2.7K

1

안녕하세요!
강의와는 조금 다르게 java11과 springboot 2.7.13(snapshot)으로 진행해봤는데요.

빌드가 계속 실패합니다 ㅠ

https://github.com/chojuyeon94/SpringBatchTutorial

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'batchDataSourceInitializer' defined in class path resource [org/springframework/boot/autoconfigure/batch/BatchAutoConfiguration$DataSourceInitializerConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.autoconfigure.batch.BatchDataSourceScriptDatabaseInitializer]: Factory method 'batchDataSourceInitializer' threw exception; nested exception is java.lang.IllegalStateException: Unable to detect database type

데이터베이스 타입을 찾을 수 없다고 나오는데요
이게 데이터베이스에 연결이 잘 안되는거라고 해서 여러 방법을 써봤는데 잘 안되서 글 남깁니다!!

답변 1

2

MJ코딩님의 프로필 이미지
MJ코딩
지식공유자

주연님 안녕하세요 :)

데이터베이스 접속 관련한 문제로 생각이 되는데요. 접속을 하시려는 타깃 데이터베이스[0]는 구동이 되어있을까요?

[0]
https://github.com/chojuyeon94/SpringBatchTutorial/blob/master/src/main/resources/application.yaml

조주연님의 프로필 이미지
조주연
질문자

imagemysql 3306포트 돌아가고 있는 것 같은데 아닐까요?

MJ코딩님의 프로필 이미지
MJ코딩
지식공유자

주연님께서 주신 깃헙 링크를 통해서 클론 이후 제 컴퓨터에서 빌드 및 실행을 해보니 이상없이 실행이 되고 있어요. 버전이나 의존성 문제는 아닌 것으로 생각이 되겠습니다 :)

MY-SQL 구동 뿐만 아니라, 접속 정보[0]를 통해서 실제 MY-SQL에 정상적으로 접속이 되는지 확인이 필요하겠습니다. 이때는 mysql workbench를 통해서 접속 확인이 필요로 한데요.
접속 이후에는 spring_batch [1] 데이터 베이스도 별도로 생성을 해주셔야 되는데 이점도 확인이 필요로 하겠습니다.
(127.0.0.1:3306/spring_batch 설정을 해주신 접속 정보[1]를 보시게 되면 데이터 베이스 이름은 spring_batch 이겠습니다. 데이터베이스 생성 명령어는 CREATE DATABASE spring_batch 입니다.)

위에 내용도 확인을 부탁드리겠습니다 :)

[0]
https://github.com/chojuyeon94/SpringBatchTutorial/blob/master/src/main/resources/application.yaml

[1]
https://github.com/chojuyeon94/SpringBatchTutorial/blob/master/src/main/resources/application.yaml#L8

조주연님의 프로필 이미지
조주연
질문자

이제 정상적으로 잘 작동합니다.. 감사합니다!

저는 자동으로 spring_batch라는 데이터베이스가 생성되는줄 알고 이 방법을 시도를 안했었는데
미리 만들어두고 했어야했나요?

MJ코딩님의 프로필 이미지
MJ코딩
지식공유자

네 ㅎㅎㅎ 도커를 활용해서 구동했을 때는 스크립트를 통해서 내부에서 만들었지만, 직접 설치를 하시는 경우에는 직접 만들어 주셔야 돼요 :)

실무에서도 업무 구분의 따라서 데이터베이스를 별도로 분리를 하겠습니다😀

감사합니다.

조주연님의 프로필 이미지
조주연

작성한 질문수

질문하기