← Назад к вопросам
В каком формате Spring Boot собирает Web приложение
1.0 Junior🔥 101 комментариев
#Spring Boot и Spring Data#Основы Java
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
# Формат сборки Spring Boot приложения
Spring Boot собирает веб приложения в виде JAR файла (не WAR), с встроенным Tomcat сервером. Это ключевая особенность Spring Boot.
JAR vs WAR
WAR (старый подход, Pre-Spring Boot)
- Web Application Archive
- Нужно развертывание на внешнем Application Server (Tomcat, JBoss)
- Структура: WEB-INF/classes, WEB-INF/lib
JAR (современный подход, Spring Boot)
- Java Archive
- Включает встроенный Tomcat/Jetty/Undertow
- Быстро запускается:
java -jar app.jar
Структура JAR файла Spring Boot
my-app.jar
├── BOOT-INF/
│ ├── classes/ # Скомпилированные классы приложения
│ │ ├── application.properties
│ │ └── com/example/...
│ └── lib/ # Все зависимости (200+ jar файлов)
├── META-INF/
│ ├── MANIFEST.MF # Main-Class, Start-Class
│ └── spring.factories # Конфигурация Spring Boot
└── org/
└── springframework/boot/loader/
└── JarLauncher.class # Custom classloader для загрузки
Как это работает
- JVM загружает
JarLauncherиз Spring Boot JarLauncherинициализирует custom classloader- Classloader загружает классы из
BOOT-INF/classes - Затем загружает все jar файлы из
BOOT-INF/lib - Запускает
Main-Class(обычно класс сpublic static void main)
Команды сборки
Maven
mvn clean package
# Создает target/my-app.jar
pom.xml конфигурация:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.example.Application</mainClass>
</configuration>
</plugin>
Gradle
gradle bootJar
# Создает build/libs/my-app.jar
Запуск
java -jar my-app.jar
# С параметрами
java -jar my-app.jar --server.port=8080 --spring.profiles.active=prod
# С переменными окружения
export SERVER_PORT=8080
java -jar my-app.jar
Преимущества JAR формата
✓ Независимость — не нужен внешний Tomcat ✓ Простота развертывания — один файл ✓ Docker friendly — легко контейнеризировать ✓ Быстрый старт — встроенный сервер готов сразу ✓ Версионирование — версия в названии файла
Это сделало Spring Boot революционным для микросервисов и облачных приложений.