有小夥伴在羣裏問到對 @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class}) 有點疑惑,故記之。
exclude,排除此類的AutoConfig,即禁止 SpringBoot 自動注入數據源配置,怎麼講?
DataSourceAutoConfiguration.class 會自動查找 application.yml 或者 properties 文件裏的 spring.datasource.* 相關屬性並自動配置單數據源「注意這裏提到的單數據源」。
那麼問題來了,排除了自動配置,Spring還怎麼識別到數據庫配置呢?
答:顯然接下來就需要手動配置,what?那我爲什麼要排除?然後手動指定數據源?
如果你發現項目中存在這個排除的騷操作,可以在項目中搜一下Java關鍵字@ConfigurationProperties("spring.datasource ,你可能會發現手動配置數據源的類。
再來回答爲何要手動配置數據源,因爲要配置多數據源,上邊有提到DataSourceAutoConfiguration.class默認會幫我們自動配置單數據源,所以,如果想在項目中使用多數據源就需要排除它,手動指定多數據源。
詳細資料,百度SpringBoot多數據源配置。