Disable all Database related auto configuration in Spring Boot Disable all Database related auto configuration in Spring Boot spring spring

Disable all Database related auto configuration in Spring Boot


The way I would do similar thing is:

@Configuration@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class, HibernateJpaAutoConfiguration.class})@Profile ("client_app_profile_name")public class ClientAppConfiguration {    //it can be left blank}

Write similar one for the server app (without excludes).

Last step is to disable Auto Configuration from main spring boot class:

@SpringBootApplicationpublic class SomeApplication extends SpringBootServletInitializer {    public static void main(String[] args) {        SpringApplication.run(SomeApplication.class);    }    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {        return application.sources(SomeApplication.class);    }}

Change: @SpringBootApplication into:

@Configuration @ComponentScan

This should do the job. Now, the dependencies that I excluded in the example might be incomplete. They were enough for me, but im not sure if its all to completely disable database related libraries. Check the list below to be sure:

http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#auto-configuration-classes

Hope that helps


For disabling all the database related autoconfiguration and exit from:

Cannot determine embedded database driver class for database type NONE

1. Using annotation:

@SpringBootApplication@EnableAutoConfiguration(exclude = {    DataSourceAutoConfiguration.class,    DataSourceTransactionManagerAutoConfiguration.class,    HibernateJpaAutoConfiguration.class})public class Application {    public static void main(String[] args) {        SpringApplication.run(PayPalApplication.class, args);    }}

2. Using Application.properties:

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


Seems like you just forgot the comma to separate the classes. So based on your configuration the following will work:

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

Alternatively you could also define it as follow:

spring.autoconfigure.exclude[0]=org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfigurationspring.autoconfigure.exclude[1]=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfigurationspring.autoconfigure.exclude[2]=org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfigurationspring.autoconfigure.exclude[3]=org.springframework.boot.autoconfigure.data.web.SpringDataWebAutoConfiguration