Files
InternetDev/demo/HOW_TO_RUN.md
2025-11-14 20:46:33 +04:00

5.7 KiB
Raw Blame History

Инструкция по запуску приложения

Требования

  • Java 21 (JDK 21)
  • Gradle (обычно входит в проект через Gradle Wrapper)

Проверьте версию Java:

java -version

Должно быть что-то вроде:

openjdk version "21.x.x"

Способы запуска

1. Через Gradle Wrapper (рекомендуется)

Windows:

cd demo
.\gradlew.bat bootRun

Linux/Mac:

cd demo
./gradlew bootRun

2. Через IDE (IntelliJ IDEA / Eclipse)

  1. Откройте проект в IDE
  2. Найдите класс DemoApplication.java в пакете com.example.demo
  3. Правой кнопкой мыши → Run 'DemoApplication'

3. Сборка и запуск JAR файла

Сборка:

cd demo
.\gradlew.bat bootJar    # Windows
# или
./gradlew bootJar         # Linux/Mac

Запуск:

java -jar build/libs/demo-0.0.1-SNAPSHOT.jar

Что происходит при запуске

  1. Создается база данных H2 в файле ./data.mv.db (в папке demo)
  2. Автоматически создаются таблицы (благодаря ddl-auto=create):
    • epochs
    • countries
    • artists
  3. Автоматически создаются начальные данные (если база пустая):
    • Страны: Россия, США, Великобритания, Германия, Франция, Япония
    • Эпохи: 1970-е, 1980-е, 1990-е, 2000-е, 2010-е, 2020-е
  4. Приложение запускается на порту 8080

Примечание: Начальные данные создаются только если база данных пустая. При последующих запусках данные сохраняются (если не удалить файл data.mv.db).

Проверка работы

1. Проверка через браузер

Откройте в браузере:

2. Проверка через H2 Console

  1. Откройте в браузере: http://localhost:8080/h2-console
  2. Настройки подключения:
    • JDBC URL: jdbc:h2:file:./data
    • User Name: sa
    • Password: sa
  3. Нажмите "Connect"
  4. Выполните SQL запрос:
    SELECT * FROM artists;
    SELECT * FROM epochs;
    SELECT * FROM countries;
    

3. Проверка через API

Используйте Swagger UI или любой HTTP клиент (Postman, curl):

Примеры запросов:

Создать эпоху:

curl -X POST http://localhost:8080/api/epochs \
  -H "Content-Type: application/json" \
  -d '{"name": "1980-е"}'

Создать страну:

curl -X POST http://localhost:8080/api/countries \
  -H "Content-Type: application/json" \
  -d '{"name": "Россия"}'

Получить всех артистов:

curl http://localhost:8080/api/artists

Запуск тестов

Через Gradle:

cd demo
.\gradlew.bat test    # Windows
# или
./gradlew test        # Linux/Mac

Через IDE:

Правой кнопкой на папке testRun Tests

Структура базы данных

После первого запуска в папке demo появится файл:

  • data.mv.db - файл базы данных H2

Важно: При каждом запуске с ddl-auto=create таблицы пересоздаются заново, поэтому данные не сохраняются между перезапусками.

Если нужно сохранять данные между запусками, измените в application.properties:

spring.jpa.hibernate.ddl-auto=update

Возможные проблемы

1. Порт 8080 занят

Ошибка: Port 8080 is already in use

Решение:

  • Измените порт в application.properties:
    server.port=8081
    
  • Или остановите процесс, использующий порт 8080

2. Java версия не подходит

Ошибка: Unsupported class file major version

Решение: Установите Java 21

3. База данных не создается

Решение:

  • Убедитесь, что у приложения есть права на запись в папку demo
  • Проверьте настройки в application.properties

4. Ошибки компиляции

Решение:

cd demo
.\gradlew.bat clean build

Полезные команды

Очистка проекта:

.\gradlew.bat clean

Пересборка:

.\gradlew.bat clean build

Просмотр зависимостей:

.\gradlew.bat dependencies

Запуск с отладкой:

Добавьте в application.properties:

logging.level.com.example.demo=DEBUG

Остановка приложения

  • В терминале: Ctrl + C
  • В IDE: нажмите кнопку "Stop" в панели запуска

Следующие шаги

  1. Откройте Swagger UI: http://localhost:8080/swagger-ui.html
  2. Протестируйте API через Swagger
  3. Проверьте данные в H2 Console
  4. Запустите тесты для проверки функциональности