Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Ответ
Как запустить Spring Boot проект
Spring Boot значительно упрощает создание и запуск Java приложений благодаря встроенному серверу (Tomcat, Jetty, Undertow) и автоконфигурации. Рассмотрю все основные способы запуска.
1. Запуск через IDE (IntelliJ IDEA, Eclipse)
Самый простой способ для разработки:
// Главный класс приложения
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Шаги в IDE:
- Открыть проект
- IDE автоматически определит main класс с аннотацией
@SpringBootApplication - Right-click на класс → Run
- Или использовать шорткат (Ctrl+Shift+F10 в IntelliJ)
Приложение запустится на http://localhost:8080
2. Команда Maven
# Запуск Spring Boot приложения
mvn spring-boot:run
# С указанием профиля
mvn spring-boot:run -Dspring-boot.run.arguments="--spring.profiles.active=dev"
# С переменными окружения
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Xmx1024m"
pom.xml конфигурация:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>3.0.0</version>
</plugin>
3. Команда Gradle
# Запуск через Gradle
./gradlew bootRun
# На Windows
gradlew.bat bootRun
# С аргументами
./gradlew bootRun --args=--spring.profiles.active=prod
build.gradle конфигурация:
plugins {
id "org.springframework.boot" version "3.0.0"
}
bootRun {
systemProperties = System.properties
}
4. Запуск JAR файла (Production)
После сборки проекта:
# Сборка JAR
mvn clean package
# Запуск готового JAR
java -jar target/myapp-1.0.0.jar
# С дополнительными JVM параметрами
java -Xmx1024m -Xms512m -jar target/myapp-1.0.0.jar
# Передача аргументов Spring Boot
java -jar target/myapp-1.0.0.jar --spring.profiles.active=prod --server.port=9000
5. Запуск в Docker контейнере
# Dockerfile
FROM openjdk:17-jdk-slim
COPY target/myapp-1.0.0.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]
EXPOSE 8080
Запуск:
# Сборка Docker образа
docker build -t myapp:1.0.0 .
# Запуск контейнера
docker run -p 8080:8080 myapp:1.0.0
# С переменными окружения
docker run -p 8080:8080 -e SPRING_PROFILES_ACTIVE=prod myapp:1.0.0
6. Использование application.properties / application.yml
# application.properties
spring.application.name=MyApp
server.port=8080
spring.profiles.active=dev
# Подключение БД
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=password
Или на YAML:
# application.yml
spring:
application:
name: MyApp
profiles:
active: dev
datasource:
url: jdbc:mysql://localhost:3306/mydb
username: root
password: password
server:
port: 8080
7. Запуск с профилями (dev/prod/test)
# Использование dev конфигурации
java -jar app.jar --spring.profiles.active=dev
# Несколько профилей
java -jar app.jar --spring.profiles.active=prod,mysql
Разные файлы конфигурации:
src/main/resources/
├── application.yml (общие настройки)
├── application-dev.yml (для разработки)
├── application-prod.yml (для production)
└── application-test.yml (для тестов)
8. Отладка при запуске
# Запуск с debug портом
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar app.jar
# Потом подключиться из IDE через Remote Debug
Проверка, что приложение запустилось
# Проверить доступность
curl http://localhost:8080/actuator/health
# Вывод:
# {"status":"UP"}
# Просмотр логов (если запущено в фоне)
tail -f app.log
Useful Spring Boot Starters
<!-- Web приложение -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- База данных -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- Безопасность -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
Типичные ошибки и решения
| Ошибка | Решение |
|---|---|
| Port 8080 already in use | Измени порт: --server.port=9000 или убей процесс |
| Database connection error | Проверь БД доступна, параметры подключения |
| ClassNotFoundException | JAR построен неправильно, переcобери mvn clean package |
| Out of Memory | Увеличь heap: java -Xmx2048m -jar app.jar |
Выбор способа зависит от контекста: для разработки — IDE или Maven/Gradle, для production — Docker или JAR с параметрами.