1. 首页
  2. IT资讯

Spring Boot 排除自动配置的 4 种方法,关键时刻很有用

“u003Cpu003ESpring Boot 提供的自动配置非常强大,某些情况下,自动配置的功能可能不符合我们的需求,需要我们自定义配置,这个时候就需要排除u002F禁用 Spring Boot 某些类的自动化配置了。u003Cu002Fpu003Eu003Cpu003E比如:数据源、邮件,这些都是提供了自动配置的,我们需要排除 Spring Boot 的自动化配置,交给我们自己来自定义,该如何做呢?u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E今天给你介绍 4 种排除方式,总有一种能帮到你!u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Ch1u003Eu003Cstrongu003E方法1u003Cu002Fstrongu003Eu003Cu002Fh1u003Eu003Cpu003E使用 @SpringBootApplication 注解的时候,使用 exclude 属性进行排除指定的类:u003Cu002Fpu003Eu003Cpreu003E@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, MailSenderAutoConfiguration.class})u003Cbru003Epublic class Application {u003Cbru003E u002Fu002F …u003Cbru003E}u003Cbru003Eu003Cu002Fpreu003Eu003Cpu003E自动配置类不在类路径下的时候,使用 excludeName 属性进行排除指定的类名全路径:u003Cu002Fpu003Eu003Cpreu003E@SpringBootApplication(excludeName = {"org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration", "org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration"})u003Cbru003Epublic class Application {u003Cbru003E u002Fu002F …u003Cbru003E}u003Cbru003Eu003Cu002Fpreu003Eu003Cpu003E这个注解集成了 @EnableAutoConfiguration 注解及其里面的参数,这个不用多解释了,具体看这篇文章:Spring Boot 最核心的 3 个注解详解。另外,关注Java技术栈微信公众号,在后台回复:boot,可以获取更多 Spring Boot 干货。u003Cu002Fpu003Eu003Ch1u003Eu003Cstrongu003E方法2u003Cu002Fstrongu003Eu003Cu002Fh1u003Eu003Cpu003E单独使用 @EnableAutoConfiguration 注解的时候:u003Cu002Fpu003Eu003Cpreu003E@…u003Cbru003E@EnableAutoConfigurationu003Cbru003E(exclude = {DataSourceAutoConfiguration.class, MailSenderAutoConfiguration.class})u003Cbru003Epublic class Application {u003Cbru003E u002Fu002F …u003Cbru003E}u003Cbru003Eu003Cu002Fpreu003Eu003Cpu003E自动配置类不在类路径下的时候,使用 excludeName 属性进行排除指定的类名全路径:u003Cu002Fpu003Eu003Cpreu003E@…u003Cbru003E@EnableAutoConfiguration {"org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration", "org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration"})u003Cbru003Epublic class Application {u003Cbru003E u002Fu002F …u003Cbru003E}u003Cbru003Eu003Cu002Fpreu003Eu003Ch1u003Eu003Cstrongu003E方法3u003Cu002Fstrongu003Eu003Cu002Fh1u003Eu003Cpu003E使用 Spring Cloud 和 @SpringCloudApplication 注解的时候:u003Cu002Fpu003Eu003Cpreu003E@…u003Cbru003E@EnableAutoConfigurationu003Cbru003E(exclude = {DataSourceAutoConfiguration.class, MailSenderAutoConfiguration.class})u003Cbru003E@SpringCloudApplicationu003Cbru003Epublic class Application {u003Cbru003E u002Fu002F …u003Cbru003E}u003Cbru003Eu003Cu002Fpreu003Eu003Cpu003ESpring Cloud 必须建立在 Spring Boot 应用之上,所以这个不用多解释了。u003Cu002Fpu003Eu003Ch1u003Eu003Cstrongu003E方法4u003Cu002Fstrongu003Eu003Cu002Fh1u003Eu003Cpu003E终极方案,不管是 Spring Boot 还是 Spring Cloud 都可以搞定,在配置文件中指定参数 spring.autoconfigure.exclude 进行排除:u003Cu002Fpu003Eu003Cpreu003Espring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,\u003Cbru003E org.springframework.boot.autoconfigure.mail.MailSenderAutoConfigurationu003Cbru003Eu003Cu002Fpreu003Eu003Cpu003E或者还可以这样写:u003Cu002Fpu003Eu003Cpreu003Espring.autoconfigure.exclude[0]=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfigurationu003Cbru003Espring.autoconfigure.exclude[1]=org.springframework.boot.autoconfigure.mail.MailSenderAutoConfigurationu003Cbru003Eu003Cu002Fpreu003Eu003Cpu003E如果你用的是 yaml 配置文件,可以这么写:u003Cu002Fpu003Eu003Cpreu003Espring: u003Cbru003E autoconfigure:u003Cbru003E exclude:u003Cbru003E – org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfigurationu003Cbru003E – org.springframework.boot.autoconfigure.mail.MailSenderAutoConfigurationu003Cbru003Eu003Cu002Fpreu003Eu003Cpu003E知道了这 4 种排除方法,我们使用 Spring Boot 的自动配置功能就游刃有余了,怎么样?都 get 到了不?u003Cu002Fpu003E”

原文始发于:Spring Boot 排除自动配置的 4 种方法,关键时刻很有用

主题测试文章,只做测试使用。发布者:程序员,转转请注明出处:http://www.cxybcw.com/26346.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code