1. spring:
    2. autoconfigure:
    3. exclude: org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration

    Spring Boot 排除自动配置的 4 种方法
    https://blog.csdn.net/u011176794/article/details/113606351

    方法1
    使用 @SpringBootApplication 注解的时候,使用 exclude 属性进行排除指定的类:

    1. @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, MailSenderAutoConfiguration.class})
    2. public class Application {
    3. // ...
    4. }

    自动配置类不在类路径下的时候,使用 excludeName 属性进行排除指定的类名全路径:

    1. @SpringBootApplication(excludeName = {"org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration", "org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration"})
    2. public class Application {
    3. // ...
    4. }

    这个注解集成了 @EnableAutoConfiguration 注解及其里面的参数,这个不用多解释了,具体看这篇文章:Spring Boot 最核心的 3 个注解详解。另外,关注Java技术栈微信公众号,在后台回复:boot,可以获取更多 Spring Boot 干货

    方法2
    单独使用 @EnableAutoConfiguration 注解的时候:

    1. @...
    2. @EnableAutoConfiguration
    3. (exclude = {DataSourceAutoConfiguration.class, MailSenderAutoConfiguration.class})
    4. public class Application {
    5. // ...
    6. }

    自动配置类不在类路径下的时候,使用 excludeName 属性进行排除指定的类名全路径:

    1. @...
    2. @EnableAutoConfiguration {"org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration", "org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration"})
    3. public class Application {
    4. // ...
    5. }

    方法3
    使用 Spring Cloud 和 @SpringCloudApplication 注解的时候:

    1. @...
    2. @EnableAutoConfiguration
    3. (exclude = {DataSourceAutoConfiguration.class, MailSenderAutoConfiguration.class})
    4. @SpringCloudApplication
    5. public class Application {
    6. // ...
    7. }

    方法4
    终极方案,不管是 Spring Boot 还是 Spring Cloud 都可以搞定,在配置文件中指定参数 spring.autoconfigure.exclude 进行排除:

    1. spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,\
    2. org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration

    或者还可以这样写:

    1. spring.autoconfigure.exclude[0]=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
    2. spring.autoconfigure.exclude[1]=org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration

    如果你用的是 yaml 配置文件,可以这么写:

    1. spring:
    2. autoconfigure:
    3. exclude:
    4. - org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
    5. - org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration