fineconstant / spring-boot-autoconfigure-exclude

Spring Boot Autoconfiguration enabling / disabling components example

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Spring Boot autoconfigure exclude example

Spring configuration properties

  • com.kduda.springboot.autoconfigure.exclude.SpringAutoconfigureEnableProperties

    @Component
    @ConfigurationProperties(prefix = "spring.autoconfigure.enable")
    class SpringAutoconfigureEnableProperties {
        /**
         * Enable Spring Cassandra auto configuration
         */
        var cassandra: Boolean = false
    
        /**
         * Enable Spring MongoDB auto configuration
         */
        var mongodb: Boolean = false
    }
  • resources application-local.yml

    spring:
      autoconfigure:
        enable:
          cassandra: true
          mongodb: false
    

Spring Boot CassandraAutoConfiguration conditional exclusion

  • com.kduda.springboot.autoconfigure.exclude.CassandraExcludeAutoConfiguration

    @Configuration
    @ConditionalOnProperty(
        prefix = "spring.autoconfigure.enable",
        name = ["cassandra"],
        havingValue = "false",
        matchIfMissing = true
    )
    @EnableAutoConfiguration(
        exclude = [CassandraAutoConfiguration::class,
            CassandraDataAutoConfiguration::class,
            CassandraReactiveDataAutoConfiguration::class,
            CassandraRepositoriesAutoConfiguration::class,
            CassandraReactiveRepositoriesAutoConfiguration::class
        ]
    )
    private class CassandraExcludeAutoConfiguration
  • com.kduda.springboot.autoconfigure.exclude.CassandraConfiguration

    @Configuration
    @ConditionalOnProperty(
        prefix = "spring.autoconfigure.enable",
        name = ["cassandra"],
        havingValue = "true",
        matchIfMissing = false
    )
    private class CassandraConfiguration {
        // some custom configuration
    }
  • Generate custom configuration properties documentation with ./gradlew kaptKotlin

About

Spring Boot Autoconfiguration enabling / disabling components example


Languages

Language:Kotlin 99.4%Language:Shell 0.6%