SPRING
2019.07.16 / 18:45

Spring Batch에서 Application 설정

탁돌이개발자
추천 수 74

새로 스프링 배치 프로그램을 만들었는데, 테스트 환경에서는 특별히 이슈가 없다가 운영 환경에서 오류가 발생했다.

결국은 8080 포트가 충돌나서 오류가 발생한 것이었다.

배치를 여러 번 실행시키는 경우 톰캣이 제대로 shutdown시키지 못해서 발생하는 문제였다.

그런데 스프링 배치인데, 굳이 톰캣을 8080 포트로 실행해야 할 이유가 있을까?

찾아보니 스프링 배치에서는 기본적으로 톰캣을 8080 포트로 로딩하고, 배치 모니터링을 제공한다.

(사실 엄밀히 따지면 배치가 실행되는 동안만 톰캣이 유효하도록 되어 있어서, 내 경우에는 별로 의미가 없는 모니터링이었다)

그래서 찾아봤더니, 아래처럼 설정을 하면 톰캣을 실행시키지 않는다고 한다.

앗, 그런데 deprecate되었다고 warning이 발생한다.

해당 설정을 하는 곳을 찾아봤더니,

위 옵션으로 서블릿을 실행할 것인지 아닌지 처리하는 설정이고,  2.0 버전부터 deprecate되었다고 친절하게 적어놨다.

SpringBoot 2.0 부터는 아래처럼 WebApplicationType을 통해서 설정이 가능하다고 한다.

결국 application.yml에 아래처럼 설정하면 된다.