Spring Dataの自動構成を無効にする

1. 前書き

このクイックチュートリアルでは、https://www.baeldung.com/spring-boot-exclude-auto-configuration-のように、Spring Bootでデータベースの自動構成を無効にする2つの異なる方法を検討します。テスト[テスト時]。
Redis、MongoDB、Spring Data JPAの例が表示されます。
まず、注釈ベースのアプローチから始め、次にプロパティファイルのアプローチについて見ていきます。

2. 注釈を使用して無効にする

link:/spring-data-mongodb-tutorial[MongoDB]の例から始めましょう。除外する必要があるクラスを見てみましょう。
@SpringBootApplication(exclude = {
    MongoAutoConfiguration.class,
    MongoDataAutoConfiguration.class
})
同様に、https://www.baeldung.com/spring-data-redis-tutorial [Redis]の自動構成を無効にする方法を見てみましょう。
@SpringBootApplication(exclude = {
    RedisAutoConfiguration.class,
    RedisRepositoryAutoConfiguration.class
})
最後に、https://www.baeldung.com/the-persistence-layer-with-spring-data-jpa [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. テスト

テストのために、https://www.baeldung.com/spring-web-contexts [アプリケーションコンテキスト]で自動構成されたクラスのSpring Beanが存在しないことを確認します。
MongoDBのテストから始めましょう。 _MongoTemplate_ Beanが存在しないかどうかを確認します。
@Test(expected = NoSuchBeanDefinitionException.class)
public void givenAutoConfigDisabled_whenStarting_thenNoAutoconfiguredBeansInContext() {
    context.getBean(MongoTemplate.class);
}
それでは、JPAを確認しましょう。 JPAの場合、_DataSource_ Beanは存在しません。
@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自動構成を無効にする方法を検討しました。
この記事のすべての例のソースコードは、https://github.com/eugenp/tutorials/tree/master/spring-boot-data [GitHub]で入手できます。