1) Project: Maven / Gradle — що це таке
Це система збірки: як проєкт завантажує бібліотеки, компілюється, запускає тести і збирає jar-файл.
- Maven — класика Java-світу, дуже часто в навчанні та enterprise.
- Gradle — теж популярний, але для новачків частіше складніше на старті.
Для практичної: беремо Maven, бо він простіший і прогнозований для групи.
2) Language: Java / Kotlin / Groovy
- Java — основна мова курсу і найпоширеніший варіант у Spring-проєктах.
- Kotlin — крута, але це інша мова і інший синтаксис (не змішуємо на старті).
- Groovy — рідше використовується для сучасних Spring Boot backend як основна мова.
Для практичної: вибираємо Java.
3) Spring Boot version: SNAPSHOT / M1 / stable
Тут важливо розуміти різницю:
- SNAPSHOT — “ще в розробці”, може ламатися і мінятися.
- M1 / Milestone — тестова попередня версія (не фінальна).
- Stable (реліз) — стабільна версія для нормальної роботи.
Для практичної: обираємо стабільну версію (на зразок 3.x). SNAPSHOT/M1 — не беремо.
4) Project Metadata — що означають поля
Це “корінь” для package-ів. Зазвичай використовують домен у зворотному напрямку. У реальних проєктах це може бути: ua.ldubgd або com.company.
Назва артефакту/модуля. Впливає на назву папки проєкту і jar-файлу.
“Людська” назва проєкту (часто збігається з Artifact).
Опис проєкту. На роботу коду майже не впливає, але це частина “охайності” проєкту.
Це базовий пакет, всередині якого Spring буде шукати компоненти (controllers/services/repositories). Якщо розкидаєте класи поза цим пакетом — Spring може їх не “бачити”.
Правило: головний клас Spring Boot має бути в “корені” вашого package name.
5) Packaging: Jar vs War
- Jar — стандарт Spring Boot: запускаємо як звичайний застосунок (вбудований сервер).
- War — старий підхід: деплой у зовнішній Tomcat (частіше legacy-системи).
Для практичної: беремо Jar. Це швидше і простіше.
6) Configuration: Properties vs YAML
- application.properties — прості “ключ=значення”, легко читати новачкам.
- application.yml — структура з відступами, зручно для великих конфігів, але можна “вбитися” об пробіли.
Для практичної: обираємо Properties.
7) Java: 17 / 21 / 25 — що вибираємо і чому
Spring Boot 3+ орієнтується на сучасну Java. Для курсу нам важлива стабільність і сумісність.
- Java 17 — дуже стабільна база, мінімум сюрпризів, підтримується Spring Boot 3.
- Java 21 — теж популярний вибір (LTS), але якщо група вся на 17 — не розвалюємо середовище.
- Java 25 — вже занадто нова для навчальної стандартизації.
Для практичної: беремо Java 17 (єдина версія для всієї групи).
8) Після заповнення — що буде згенеровано
Після натискання Generate ми отримуємо zip-архів з мінімальним проєктом:
- pom.xml (Maven залежності)
- src/main/java + головний клас Spring Boot
- src/main/resources + application.properties
- структура готова для додавання Controller / Service / Repository
Далі: вибір залежностей (Spring Web / Spring Data JPA / H2 або MySQL)