Перш ніж почати, давайте трохи прояснимо: Hello World — це не просто традиція, це свого роду ритуал посвячення. Якщо ви не написали "Hello World" на своєму новому фреймворку, значить, ви ще не почали на ньому працювати. Сьогодні ми створимо наш перший проєкт на Spring Boot. І знаєте що? Усе буде суперпросто, без зайвого головного болю. Готові? Поїхали!
Крок 1: Підготовка проєкту
Почнемо зі створення структури нашого проєкту. Для цього ми скористаємося Spring Initializr — зручним інструментом для генерації базового каркасу застосунків Spring Boot.
- Відкрийте Spring Initializr у вашому браузері.
- Заповніть наступні параметри:
- Project: Maven (або Gradle — на ваш смак, але ми використовуємо Maven у цьому прикладі).
- Language: Java.
- Spring Boot Version: 3.1.0 (останній стабільний реліз).
- Group:
com.example. - Artifact:
helloworld. - Name:
helloworld. - Packaging: jar.
- Java Version: 17 (або інша, якщо у вас специфічне робоче середовище, але краще 17+).
- Додайте залежність:
- Spring Web (вона потрібна для роботи REST-контролерів).
- Натисніть "Generate" — ваш проєкт буде завантажено у вигляді архіву.
Розархівуйте проєкт у зручну папку на комп'ютері, а потім відкрийте його у вашій улюбленій IDE. До цього моменту більшість з вас використовували IntelliJ IDEA (Community Edition працює чудово). Тут вона також прекрасно підійде.
Крок 2: Структура проєкту
Погляньмо, яка структура нашого проєкту. Вона виглядає приблизно так:
helloworld/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/example/helloworld/
│ │ │ └── HelloworldApplication.java
│ │ ├── resources/
│ │ └── application.properties
├── pom.xml
src/main/java— тут ми будемо писати наш Java-код.src/main/resources/application.properties— основний файл конфігурації для застосунку.HelloworldApplication.java— наш головний клас з анотацією@SpringBootApplication. Саме звідси все запускається.
І, звісно, pom.xml (або build.gradle, якщо ви обрали Gradle) для керування залежностями.
Крок 3: Створення Hello World-контролера
Отже, приступаємо! Потрібно створити клас-контролер, який повертатиме повідомлення "Hello World!". Контролер — це компонент, що обробляє HTTP-запити, які надходять до вашого застосунку.
Створіть новий файл HelloController.java у папці src/main/java/com/example/helloworld:
package com.example.helloworld;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
// Анотація @RestController робить цей клас REST-контролером.
@RestController
@RequestMapping("/api") // Базовий шлях для всіх ендпоінтів у цьому контролері.
public class HelloController {
// Анотація @GetMapping означає, що цей метод обробляє GET-запити.
@GetMapping("/hello")
public String sayHello() {
// Повертаємо просте повідомлення.
return "Hello, World!";
}
}
Коротке пояснення:
@RestControllerпоєднує в собі@Controllerта@ResponseBody. Це потрібно, щоб повертати дані безпосередньо в HTTP-відповідь (без роботи з шаблонами).@RequestMappingзадає базовий URL для всіх запитів у цьому контролері. У нашому випадку це/api.@GetMapping("/hello")означає, що методsayHelloбуде викликатися, коли клієнт відправить GET-запит на/api/hello.
Крок 4: Налаштування і запуск застосунку
Тепер переконаймося, що наш застосунок запускається. Відкрийте HelloworldApplication.java (він вже згенерований Spring Initializr). Ви побачите такий код:
package com.example.helloworld;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class HelloworldApplication {
public static void main(String[] args) {
SpringApplication.run(HelloworldApplication.class, args);
}
}
Цей клас робить три речі:
- Анотація
@SpringBootApplicationвключає:@Configuration— дозволяє визначати конфігураційні біни.@EnableAutoConfiguration— автоматично налаштовує все, що можливо.@ComponentScan— шукає компоненти (біни) в поточному та вкладених пакетах.
- Метод
mainзапускає застосунок. Так, Spring Boot настільки простий! SpringApplication.run()ініціалізує наш контекст і сервер.
Тепер запустіть застосунок. Можна зробити так:
- В IntelliJ IDEA: натисніть на зелений трикутник поруч із
main. - Через термінал: виконайте команду
mvn spring-boot:run.
Якщо все пройшло успішно, ви побачите в терміналі щось на кшталт:
Tomcat started on port(s): 8080 (http) with context path ''
Started HelloworldApplication in 2.345 seconds
Крок 5: Перевірка роботи застосунку
А тепер перевіримо, чи все працює. Відкрийте ваш браузер (або Postman, якщо хочете виглядати професійно) і перейдіть за адресою:
http://localhost:8080/api/hello
Вуаля! Ви повинні побачити:
Hello, World!
Як це працює?
Коли ви надсилаєте GET-запит на /api/hello, Spring Boot автоматично викликає метод sayHello() у вашому контролері. Цей метод повертає рядок "Hello, World!", який відображається у вашому браузері.
Типові помилки і способи їх виправлення
- Помилка 404 (Not Found): перевірте, чи відповідає URL
/api/hello. Можливо, ви ввели його неправильно або забули вказати/apiу@RequestMapping. - Застосунок не запускається: переконайтеся, що клас
HelloworldApplicationзнаходиться в кореневому пакетіcom.example.helloworld. - Проблема з портом (Port already in use): це означає, що порт 8080 вже зайнятий. Ви можете змінити порт у файлі
application.properties, додавши рядок:server.port=8081 - Проблеми з залежностями: переконайтеся, що в вашому
pom.xmlє залежність для Spring Web:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
Практичне застосування знань
Розуміння того, як створити простий застосунок, — це перший крок до написання повноцінного REST API. На співбесідах часто питають "Як створити базовий проєкт Spring Boot?", а вміння налаштувати контролер для обробки HTTP-запитів вже додає вам впевненості.
Трохи пізніше ми додамо складніші контролери, бази даних, транзакції та безпеку, але вже зараз ви опанували фундаментальні інструменти, які знадобляться для серйозніших задач.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ