Добавить в корзинуПозвонить
Найти в Дзене
Java

Spring Boot магия, которая на самом деле просто проверка classpath

@ConditionalOnClass - одна из тех аннотаций, из-за которых Spring Boot кажется умным. Она говорит фреймворку: «Включи этот bean или конфигурацию только если нужный класс реально есть в проекте». Простой пример: @Configuration @ConditionalOnClass(DataSource.class) public class DataSourceAutoConfiguration { // загружается только если доступен javax.sql.DataSource } То есть Spring Boot не пытается настраивать всё подряд. Он смотрит: • есть ли нужная библиотека в зависимостях • доступен ли конкретный класс • можно ли безопасно включить автоконфигурацию Именно поэтому ты добавляешь starter - и внезапно появляется конфигурация для базы, Redis, Kafka, Web MVC или Security. Не потому что Spring «угадал». А потому что нужные классы появились в classpath, и условия автоконфигурации стали true. В этом и есть главный принцип Spring Boot: меньше ручной настройки, больше условий, которые включаются только когда проект к ним готов.

Spring Boot магия, которая на самом деле просто проверка classpath.

@ConditionalOnClass - одна из тех аннотаций, из-за которых Spring Boot кажется умным.

Она говорит фреймворку:

«Включи этот bean или конфигурацию только если нужный класс реально есть в проекте».

Простой пример:

@Configuration

@ConditionalOnClass(DataSource.class)

public class DataSourceAutoConfiguration

{

// загружается только если доступен javax.sql.DataSource

}

То есть Spring Boot не пытается настраивать всё подряд.

Он смотрит:

• есть ли нужная библиотека в зависимостях

• доступен ли конкретный класс

• можно ли безопасно включить автоконфигурацию

Именно поэтому ты добавляешь starter - и внезапно появляется конфигурация для базы, Redis, Kafka, Web MVC или Security.

Не потому что Spring «угадал».

А потому что нужные классы появились в classpath, и условия автоконфигурации стали true.

В этом и есть главный принцип Spring Boot:

меньше ручной настройки, больше условий, которые включаются только когда проект к ним готов.