Рубрики
Без рубрики

Отключить автоматическую настройку весенних данных

Узнайте о двух способах отключения автоматической настройки Spring Boot для данных Spring

Автор оригинала: baeldung.

1. введение

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

Мы увидим примеры для Redis, MongoDB и Spring Data JPA.

Во-первых, мы начнем с подхода, основанного на аннотациях, а затем рассмотрим подход к файлу свойств.

2. Отключите Использование аннотаций

Давайте начнем с примера MongoDB, мы рассмотрим классы, которые необходимо исключить:

@SpringBootApplication(exclude = {
    MongoAutoConfiguration.class, 
    MongoDataAutoConfiguration.class
})

Аналогично, давайте рассмотрим отключение автоматической настройки для Redis:

@SpringBootApplication(exclude = {
    RedisAutoConfiguration.class, 
    RedisRepositoryAutoConfiguration.class
})

Наконец, давайте рассмотрим отключение автоматической настройки для Spring Data JPA:

@SpringBootApplication(exclude = {
    DataSourceAutoConfiguration.class, 
    DataSourceTransactionManagerAutoConfiguration.class, 
    HibernateJpaAutoConfiguration.class
})

3. Отключите использование Файла свойств

Мы также можем отключить автоматическую настройку с помощью файла свойств, давайте сначала рассмотрим его с помощью MongoDB:

spring.autoconfigure.exclude= \
  org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, \
  org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration

Теперь давайте отключим его для Redis:

spring.autoconfigure.exclude= \
  org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration, \
  org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration

Аналогично, давайте отключим его для Spring Data JPA:

spring.autoconfigure.exclude= \ 
  org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration, \
  org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration, \
  org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration

4. Тестирование

Для тестирования мы проверим, что компоненты Spring для автоматически настроенных классов отсутствуют в контексте нашего приложения .

Давайте начнем с теста для MongoDB. Мы проверим, отсутствует ли MongoTemplate bean:

@Test(expected = NoSuchBeanDefinitionException.class)
public void givenAutoConfigDisabled_whenStarting_thenNoAutoconfiguredBeansInContext() { 
    context.getBean(MongoTemplate.class); 
}

Теперь давайте проверим JPA. Для JPA компонент DataSource будет отсутствовать:

@Test(expected = NoSuchBeanDefinitionException.class)
public void givenAutoConfigDisabled_whenStarting_thenNoAutoconfiguredBeansInContext() {
    context.getBean(DataSource.class);
}

Аналогично, для Redis мы проверим RedisTemplate bean в контексте нашего приложения:

@Test(expected = NoSuchBeanDefinitionException.class)
public void givenAutoConfigDisabled_whenStarting_thenNoAutoconfiguredBeansInContext() {
    context.getBean(RedisTemplate.class);
}

5. Заключение

В заключение, в этом кратком руководстве мы рассмотрели способы отключения автоматической настройки Spring Boot для различных баз данных.

Исходный код для всех примеров в статье доступен на GitHub .