弹簧启动排除自动配置的4种方法,关键时刻很有用

  

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

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

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

 @SpringBootApplication(排除={DataSourceAutoConfiguration。类,MailSenderAutoConfiguration.class})
  公共类应用程序{//?
  }

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

 @SpringBootApplication (excludeName={" org.springframework.boot.autoconfigure.jdbc。DataSourceAutoConfiguration”、“org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration”})
  公共类应用程序{//?
  }

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

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

 @……
  @EnableAutoConfiguration
  (排除={DataSourceAutoConfiguration。类,MailSenderAutoConfiguration.class})
  公共类应用程序{//?
  }

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

 @……
  org.springframework.boot.autoconfigure.jdbc @EnableAutoConfiguration {”。DataSourceAutoConfiguration”、“org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration”})
  公共类应用程序{//?
  }

使用春云和@SpringCloudApplication注解的时候:

 @……
  @EnableAutoConfiguration
  (排除={DataSourceAutoConfiguration。类,MailSenderAutoConfiguration.class})
  @SpringCloudApplication
  公共类应用程序{//?
  }

春云必须建立在春天引导应用之上,所以这个不用多解释了。

终极方案,不管是弹簧引导还是春天的云都可以搞的定,在配置文件中指定参数spring.autoconfigure。排除进行排除:

 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配置文件,可以这么写:

春:
  可以使用autoconfigure:
  排除:
  ——org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
  ——org.springframework.boot.autoconfigure.mail。MailSenderAutoConfiguration 

知道了这4种排除方法,我们使用弹簧引导的自动配置功能就游刃有余了,怎么样?都让到了不?


弹簧启动排除自动配置的4种方法,关键时刻很有用