Ответ
Spring Boot по умолчанию собирает веб-приложение в исполняемый JAR-файл (Executable JAR), который содержит встроенный веб-сервер (обычно Tomcat, Jetty или Undertow).
Ключевые особенности:
- "Fat JAR" или "Uber JAR": Файл содержит все зависимости (библиотеки), классы приложения и встроенный сервер, упакованные вместе. Это позволяет запускать приложение одной командой, без необходимости развертывания на внешнем сервере приложений.
- Структура: Внутри JAR-файла классы и зависимости упакованы в
BOOT-INF/classesиBOOT-INF/libсоответственно. - Манифест: В
META-INF/MANIFEST.MFуказан главный классorg.springframework.boot.loader.JarLauncher, который является специальным загрузчиком Spring Boot.
Альтернативный формат: Spring Boot также поддерживает сборку в WAR-файл (Web Application Archive) для традиционного развертывания на внешнем сервере приложений (например, Tomcat, WildFly). Для этого в pom.xml (Maven) или build.gradle (Gradle) нужно изменить упаковку (<packaging>) на war.
Пример команды запуска:
java -jar my-spring-boot-app.jar