[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-spring-kak-rabotaet-avtokonfiguratsiya-v-spring-boot":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":15,"progress":16,"seo":17},624,"kak-rabotaet-avtokonfiguratsiya-v-spring-boot",14,"spring","Spring","🌱","Как работает автоконфигурация в Spring Boot?","Автоконфигурация (Auto-configuration) -- механизм, при котором Spring Boot автоматически настраивает бины на основании библиотек в classpath и заданных свойств.\n\n### Как это работает\n\n1. `@EnableAutoConfiguration` (входит в `@SpringBootApplication`) активирует процесс\n2. Spring Boot читает `META-INF\u002Fspring\u002Forg.springframework.boot.autoconfigure.AutoConfiguration.imports` для обнаружения классов автоконфигурации\n3. Каждый класс содержит условия (`@Conditional`), при которых он применяется\n\n### Основные условия (@Conditional)\n\n| Аннотация | Условие |\n|-----------|---------|\n| `@ConditionalOnClass` | Класс есть в classpath |\n| `@ConditionalOnMissingClass` | Класса нет в classpath |\n| `@ConditionalOnBean` | Бин уже зарегистрирован |\n| `@ConditionalOnMissingBean` | Бин ещё не зарегистрирован |\n| `@ConditionalOnProperty` | Свойство имеет определённое значение |\n| `@ConditionalOnWebApplication` | Приложение является веб-приложением |\n\n### Принцип приоритета\n\nПользовательские бины всегда имеют приоритет над автоконфигурацией. Если вы определили свой `DataSource`, автосконфигурированный не будет создан (благодаря `@ConditionalOnMissingBean`).\n\n### Отключение автоконфигурации\n\n```java\n@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})\npublic class MyApplication { }\n```\n\n### Отладка\n\n```properties\n# Показывает, какие автоконфигурации применены, а какие нет\ndebug=true\n```\n\n> **На собеседовании:** ключевое -- понимание принципа `@ConditionalOnMissingBean` и приоритета пользовательских бинов. Частая ошибка -- добавить зависимость (например, `spring-boot-starter-data-jpa`) без настройки `spring.datasource.url` и получить ошибку запуска.","","junior",[7],[],null,{"title":18,"description":19,"ogTitle":18,"ogDescription":20,"keywords":21,"schemaAnswer":19,"featuredSnippetReady":22},"Как работает встроенный сервер в Spring Boot? — Gymterview","Spring Boot включает встроенный (embedded) сервер приложений, позволяющий запускать приложение как обычный JAR-файл без развёртывания на внешнем сервере.","Spring Boot включает встроенный (embedded) сервер приложений, позволяющий запускать приложение как обычный JAR-файл без ",[7,13],true]