Spring Framework의 개발환경이 Springboot 기반으로 변함에 따라 Spring Batch의 개발방식도 이전과는 많이 달라졌다. 필자가 전에 쓴 Spring Batch에 관한 글은 Springboot 기반이 아니라서 Batch Job을 작성하면 maven build를 해서 jar로 결과물을 만들어내고 이것에 대한 실행파일을 script로 만들어서 그 script를 동작시켜 실행하곤 했다. 이런 불편함을 없애주고 설정도 간결하게 할 수 있는 Springboot 기반의 Batch가 나왔고 이제는 대세가 되었다. 따라서 이전에 작성했던 Spring Batch Chunk Example 도 Springboot 기반으로 동작시키기 위해 글을 써본다. Springboot기반이라 많은 부분이 달라졌는데..
springboot는 이게 정말 왜 되지? 할 정도로 내장되어 있는 편리한 기능들이 많이 있다. 이번에 소개할 내용도 그렇다. 내부 로직을 까보지 않아서 정확한 동작원리는 파악하지 못했지만 그래도 급하게 DB 연동해서 테스트 할일이 있을때 편리하게 사용할 수 있는 샘플 프로젝트다. springboot 와 embedded hsql db의 조합이다. 빠르게 살펴보자. 프로젝트 생성 New Spring Starter Project 를 통해 프로젝트를 생성한다. dependency는 Spring Data JPA만 넣어준다. pom.xml org.hsqldb hsqldb runtime pom.xml 에는 위와 같이 hsqldb dependency를 추가해준다. 프로젝트 생성이 완료되면 위와 같은 모습일것이고 re..
springboot application을 기동하니 기동하자마자 로그 몇줄 찍히고는 바로 terminated 상태가 되어버린다. 오류도 나오지 않는다.. logging.level을 debug로 내리니 그래도 몇줄 더 보인다. 그리고 맨 마지막에는 아래와 메세지가 나왔다. 2020-10-08 23:00:35.704 DEBUG 17864 --- [extShutdownHook] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@7fcf2fc1, started on Thu Oct 08 23:00:33 KST 2020, parent: org...
springboot는 내장 톰캣을 사용하기에 server.xml 이라던지 context.xml 등등의 xml 설정파일이 없다. 하지만 이런 설정파일을 java config로 대체할 수 있다. 기존에 server.xml 에서 tomcat 간 session clustering을 했던것을 토대로 java config를 작성해본다. 기존 글과 비교해가면서 보면 이해가 쉽다. 필자의 환경은 springboot 2.1.15.RELEASE, tomcat 9.0.36, openjdk 11 version 을 사용중이다. pom.xml org.apache.tomcat tomcat-catalina-ha ${tomcat.version} 일단은 tomcat-catalina-ha 라는 dependency를 추가해줘야한다. Tom..
springboot 1.4.2 를 사용하다가 2.x 로 versionup을 하였다. 오 생각보다 별 이슈 없이 잘 되네? 하며 종속성 에러를 다 잡고 서버를 기동하는 순간 다음과 같은 오류가 떨어졌다. 이 익숙한듯 익숙하지않은 익숙한거같은 오류... 분명 위에서 지적하는 logback 관련 라이브러리는 물론 잘 올라와있다. 찾아보니 역시 springboot migration 이슈였다. 이건 springboot 1.5.x 를 사용할때도 나타나는 현상이라고 하는데 springboot 1.5.x 이상에서 logback 1.0.x version을 사용하면 이런 문제가 발생한다고 한다. 해결방법은 logback을 최소 1.1.3 version 이상을 사용하면 된다. 1.2.3 이렇게 바꾸고 다시 기동시켜보면 잘 ..
springboot를 기동을 시작하면 제일 먼저 다음 문구가 나오는것을 확인할 수 있다. . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v1.4.2.RELEASE) [12:24:20.819][INFO ][sample.Application.logStarting:line48] - Starting Application 이런것을 banner(배..
수많은 삽집을 해가며 결국에는 전환에 성공을 했다. 아주 초간단으로 최소한의 것들만 바꾸고 전환한거라 앞으로 할일(applicationContext의 java config 전환, spring properties 활용 등)도 많지만 그래도 기쁜 마음으로 빌드 및 실행을 해본다. 물론 실행은 전환을 하는 과정에 수도 없이 해봤다. 이클립스의 boot dashboard를 통해서 돌렸을때는 잘 동작을 한다. 주르르륵 올라가는 로그를 보면 참 뿌듯하다. 사실은 별로 많이 바꾼게 없는데 springboot가 알아서 바꿔준 부분도 많은데 혼자서 이것저것 다 만들어보고 고생해서 한거라 더 감격스러웠다. 이제 마지막 단계가 남았다. 이걸 서버에서 돌리기 위해 war로 말아줘야 하고 또 그걸 실행을 시켜야 한다. 기존의 ..
2020/05/13 - [framework/Springboot] - spring 프로젝트에서 springboot 프로젝트로 migration 하기 (1) - pom.xml 2020/05/13 - [framework/Springboot] - spring 프로젝트에서 springboot 프로젝트로 migration 하기 (2) - web.xml 2020/05/14 - [framework/Springboot] - spring 프로젝트에서 springboot 프로젝트로 migration 하기 (3) - 파일 추가 및 변경 중요한 전환은 이제 다 마쳤고 이제 springboot에서 logback을 사용하는 방법에 대해 알아보자. AS-IS framework에서도 logging framework는 logback을 ..