
JobLauncher Batch Job을 실행시킨다. Job과 JobParameters를 인자로 받는다. Batch를 수행한 후 JobExecution을 반환한다. Spring Batch가 구동되면 JobLauncher 빈이 생성된다. Job 실행 jobLauncher.run(job, jobParameters) Sync taskExecutor를 SyncTaskExecutor로 설정할 경우 (Default) JobExecution을 획득하고 배치 작업 완료 후 JobExecution 반환 Scheduler에 의한 배치 작업에 적합 배치 처리시간이 길어도 상관없을 때 Async taskExecutor가 SimpleAsyncTaskExecutor로 설정할 경우 JobExecution을 획득하고 바로 JobEx..
Spring Batch 테스트 코드를 짜다가 메인 애플리케이션은 잘 작동하는데, 테스트 코드를 실행하면 해당 job은 실행이 되지만 첫 step이 진행이 안되는 현상이였다. job meta table인 BATCH_JOB_EXECUTION 에서 해당 job 정보를 보면 STATUS가 STARTED, EXIT_CODE는 UNKNOWN 이였다. 해당 현상을 검색해보니 아래와 같은 스택오버플로우 글을 보았다. https://stackoverflow.com/questions/68169477/how-to-update-spring-batch-status-on-unexpected-shutdown How to update Spring Batch status on unexpected shutdown I'm implemen..
스프링부트로 API 서버를 구축할 때, 우리는 자연스럽게 HTTP 메시지 컨버터를 사용한다. @RequestBody, @ResponseBody를 사용하게 되면 viewResolver 대신 HttpMessageConverter가 동작되는데, 이 HttpMessageConverter에 대해 정리하고자 한다. 스프링 MVC는 다음의 경우에 HTTP 메시지 컨버터를 사용한다. HTTP 요청: @RequestBody, HttpEntity(RequestEntity) HTTP 응답: @ResponseBody, HttpEntity(ResponseEntity) HTTP 메시지 컨버터 인터페이스 코드를 살펴보면 아래와 같다. public interface HttpMessageConverter { boolean canRea..

스프링부트 기반의 애플리케이션을 내장톰캣이 아닌 jboss 위에 구동시킬 경우 아래의 방법을 참고하면 된다. 1. war로 프로젝트를 생성(변경)한다. 2. webapp/WEB-INF 폴더를 생성하고 아래의 파일들을 추가해준다. jboss-deployment-structure.xml jboss는 기본적으로 자체 로그 모듈을 사용하여 배포한 애플리케이션에 포함된 Log4J 설정이 동작하지 않는다. 따라서 해당 로그 라이브러리를 exclusion으로 설정해준다. jboss-web.xml / context-root를 /로 설정해준다.

lombok의 @Builder 어노테이션을 클래스단위에 사용한 어플리케이션을 빌드 할때 발생. 에러내용: @Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final. -> @Builder는 초기화 표현을 다 무시한다. 초기화 하고싶으면 @Builder.Default 나 final 필드로 선언해라. 해결: final 필드로 선언하면 수정이 불가하니 초기화 대상 필드마다 @Builde..