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:

меньше ручной настройки, больше условий, которые включаются только когда проект к ним готов.
👍 5
3
1 11 1.5K

Обсуждение 1

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram