Цікава інформація 2.2
1. Spring Boot Starters: Магія залежностей
Раніше в Spring розробник мав сам шукати сумісні версії бібліотек (наприклад, щоб Hibernate підходив до Spring Core). Spring Boot вирішив це через Starters.
- Starter — це просто набір посилань на інші бібліотеки.
- Ви додаєте
spring-boot-starter-web, а він сам "тягне" за собою Tomcat, Jackson (для JSON), Spring MVC та валідацію. - Parent POM: У Maven ваш проект успадковує
spring-boot-starter-parent. Це дозволяє не писати номери версій для кожної бібліотеки. Spring знає, які версії найкраще працюють разом.
2. Конфігурація: Properties vs YAML
Spring Boot дозволяє винести всі налаштування за межі коду. Ви можете використовувати два формати:
application.properties (плаский список):
server.port=8081
spring.datasource.url=jdbc:mysql://localhost:3306/db
application.yml (ієрархічне дерево):
server:
port: 8081
spring:
datasource:
url: jdbc:mysql://localhost:3306/db
Порада: YAML зручніший для великих проектів, бо він наочно показує структуру об'єктів.
3. Як зчитати налаштування в коді
Є два головні способи отримати дані з цих файлів у Java:
- @Value: Для поодиноких значень.
@Value("${app.upload.path}") private String uploadPath; - @ConfigurationProperties: Для групування логічно пов'язаних налаштувань у об'єкт. Це надійніше і дозволяє валідувати дані.
4. Профілі (Profiles)
Це одна з найкрутіших фішок. Ви можете мати різні налаштування для розробки (
dev), тестування (test) та реальних користувачів (prod).- Створюєте файли:
application-dev.ymlтаapplication-prod.yml. - Активуєте потрібний у головному файлі:
spring: profiles: active: dev
Або через термінал при запуску:
--spring.profiles.active=prod.5. Автоконфігурація: Як це працює?
Коли ви запускаєте додаток з анотацією
@SpringBootApplication, відбувається наступне:- Component Scan: Spring шукає всі ваші
@Service,@Controllerтощо. - Auto-configuration: Spring дивиться, які бібліотеки є у вашому
pom.xml.- Приклад: Якщо він бачить бібліотеку H2 (база в пам'яті), він автоматично створить бін
DataSourceі підключиться до неї без жодного рядка коду від вас.
- Приклад: Якщо він бачить бібліотеку H2 (база в пам'яті), він автоматично створить бін
Ця логіка базується на анотаціях типу
@ConditionalOnClass або @ConditionalOnProperty. Бін створюється лише тоді, коли виконується певна умова.6. Пріоритет налаштувань
Spring Boot дуже гнучкий. Якщо параметр вказаний у кількох місцях, він обирає найважливіший. Порядок такий (від найсильнішого до найслабшого):
- Аргументи командного рядка (
--server.port=9000). - Змінні оточення ОС.
application.properties(або YAML) за межами проекту.application.propertiesвсередині проекту.
Остання зміна: середа 20 травня 2026 12:21 PM