@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})註解作用

有小夥伴在羣裏問到對 @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class}) 有點疑惑,故記之。

exclude,排除此類的AutoConfig,即禁止 SpringBoot 自動注入數據源配置,怎麼講?

DataSourceAutoConfiguration.class 會自動查找 application.yml 或者 properties 文件裏的 spring.datasource.* 相關屬性並自動配置單數據源「注意這裏提到的單數據源」。

那麼問題來了,排除了自動配置,Spring還怎麼識別到數據庫配置呢?

答:顯然接下來就需要手動配置,what?那我爲什麼要排除?然後手動指定數據源?

如果你發現項目中存在這個排除的騷操作,可以在項目中搜一下Java關鍵字@ConfigurationProperties("spring.datasource ,你可能會發現手動配置數據源的類。

再來回答爲何要手動配置數據源,因爲要配置多數據源,上邊有提到DataSourceAutoConfiguration.class默認會幫我們自動配置單數據源,所以,如果想在項目中使用多數據源就需要排除它,手動指定多數據源。

詳細資料,百度SpringBoot多數據源配置。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章