Spring Boot 排除配置类的引用的方法

        Spring Boot 提供的自动配置非常强大,某些情况下,自动配置的功能可能不符合我们的需求,需要我们自定义配置,这个时候就需要排除/禁用 Spring Boot 某些类的自动化配置了。

比如:数据源、邮件,这些都是提供了自动配置的,我们需要排除 Spring Boot 的自动化配置,交给我们自己来自定义,该如何做呢?

 spring boot自动配置类

方法1

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

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

public class Application {

    // ...

}

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

@SpringBootApplication(excludeName = {"org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration", "org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration"})

public class Application {

    // ...

}

方法2

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

@EnableAutoConfiguration

(exclude = {DataSourceAutoConfiguration.class, MailSenderAutoConfiguration.class})

public class Application {

    // ...

}

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

@EnableAutoConfiguration {"org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration", "org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration"})

public class Application {

    // ...

}

方法3

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

@EnableAutoConfiguration

(exclude = {DataSourceAutoConfiguration.class, MailSenderAutoConfiguration.class})

@SpringCloudApplication

public class Application {

    // ...

}

方法4

在配置文件中指定参数 spring.autoconfigure.exclude 进行排除:

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

或者还可以这样写:

spring.autoconfigure.exclude[0]=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration

spring.autoconfigure.exclude[1]=org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration

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

spring:    

  autoconfigure:

    exclude:

      - org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration

      - org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration

自己写的配置类

方法5

*springBoot排除某个自写的配置类引用  排除以下配置类引用
@ComponentScan(basePackages = "com.aiagain",excludeFilters = {

@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE,classes = {XxlJobConfig.class})})

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

magic33416563

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值