본문 바로가기

Spring Framework/Spring Boot

(3)
[Spring Boot] 스프링 부트 애플리케이션 종료 개요 실전 스프링 부트 책을 읽던 중 shutdown hook 개념과 안전 종료 개념에 대해 배울 수 있었다. 관련 개념에 대해 알아보고,스프링 부트의 종료 로직을 좀 더 자세히 알아보자! 관련 개념1. Shutdown Hook- 개념: JVM이 종료되기 전에 실행되는 스레드- 이용: 스프링 부트에서는 자동으로 shutdown hook을 등록하여 애플리케이션 컨텍스트를 안전하게 종료한다. 2. 안전 종료(Graceful Shutdown)- 개념: 진행 중인 요청을 완료한 후 서버를 종료하는 방식- 지원 버전: 스프링 부트 2.3부터 지원.- 설정 방법# application.ymlserver: shutdown: gracefulspring: lifecycle: timeout-per-shutdo..
[Spring Boot] SpringApplication.run()을 호출하면 일어나는 일들 개요실전 스프링 부트 책을 읽다가 SpringApplication.run() 메서드가 실행될 때 수행하는 작업을 알게되었다.classpath에 있는 라이브러리를 기준으로 ApplicationContext 클래스 인스턴스를 생성CommandLinePropertySource를 등록해서 명령행 인자를 스프링 프로퍼티로 읽어 들인다.앞의 1단계에서 생성한 ApplicationContext를 통해 모든 싱글턴 빈을 로딩한다.애플리케이션에 설정된 ApplicationRunners와 CommandRunners를 실행한다. 설명은 위와 같았는데 과연 정말 그럴까???개발자는 코드로 공부해야 한다고 생각한다. 직접 코드를 뜯어보며 이해해보자. 코드먼저 참고한 스프링 부트의 버전은 3.2.2이다.버전이 다를경우 내부 로..
[Spring Boot] Jar vs War 배포 방법 비교 개요스프링부트를 사용하는 https://start.spring.io 에 들어가보면 Packaging 방식이 Jar과 War 두 가지로 구분되는 것을 확인할 수 있습니다. 두 가지 방식의 차이점이 궁금해져서 이 포스트를 시작하게 되었습니다.  핵심 개념기본적으로 JAR, WAR 모두 java의 jar 옵션을 이용해 생성된 압축(아카이브)파일이며,애플리케이션을 쉽게 배포하고 동작시킬 수 있도록 관련 파일(리소스, 속성 파일 등)을 패키징한 것이다.  1. JAR(Java Archive)Java Application이 동작할 수 있도록 자바 프로젝트를 압축한 파일라이브러리, 리소스, 보조 파일(property files)을 포함JRE(Java Runtime Enviornment)만 있어도 실행 가능스프링 부트..