Автоконфигурация в Spring Boot

Автоматическая настройка Spring Boot пытается автоматически настроить приложение Spring на основе добавленных вами зависимостей jar. Например, если HSQLDB находится в вашем пути к классам (classpath), и вы не настроили вручную никаких компонентов соединения с базой данных, то Spring Boot автоматически конфигурирует базу данных в памяти.

Если Вам необходимо включить автоматическую настройку, добавьте аннотации @EnableAutoConfiguration или @SpringBootApplication к одному из ваших классов @Configuration.

Вам следует добавлять только одну аннотацию @SpringBootApplication или @EnableAutoConfiguration. Как правило, рекомендуется добавлять один или другой только в ваш основной класс @Configuration.

Постепенная замена авто-конфигурации

Автоконфигурация неинвазивна. В любой момент вы можете начать определять свою собственную конфигурацию для замены определенных частей автоконфигурации. Например, если вы добавите свой собственный DataSource bean, поддержка встроенной базы данных по умолчанию отступит.

Если вам нужно выяснить, какая автоконфигурация применяется и почему, запустите ваше приложение с ключом --debug. Это включает журналы отладки для выбора основных регистраторов и записывает отчет о состоянии в консоль.

Отключение определенных классов автоконфигурации

Если вы обнаружите, что применяются определенные нежелательные классы автоконфигурации, вы можете использовать атрибут exclude @EnableAutoConfiguration, чтобы отключить их, как показано в следующем примере:

import org.springframework.boot.autoconfigure.*;
import org.springframework.boot.autoconfigure.jdbc.*;
import org.springframework.context.annotation.*;

@Configuration(proxyBeanMethods = false)
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class MyConfiguration {
}

Если класс отсутствует в пути к классам (classpath), вы можете использовать атрибут excludeName аннотации и указать вместо него полное имя. Наконец, вы также можете управлять списком классов автоконфигурации, которые нужно исключить, используя свойство spring.autoconfigure.exclude.

Вы можете определить исключения как на уровне аннотации, так и с помощью свойства. Хотя классы автоконфигурации являются public, единственным аспектом класса, который считается открытым API, является имя класса, которое можно использовать для отключения автоконфигурации. Фактическое содержимое этих классов, таких как вложенные классы конфигурации или методы bean-компонентов, предназначено только для внутреннего использования, и не рекомендуется использовать их напрямую.


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки