2016-01-20 36 views
0

Spring引導提供了許多啓動器依賴項,如spring-boot-starter,spring-boot-starter-batch,spring-boot-starter-test等等。這些依賴包括很多其他傳遞依賴。到目前爲止,我在項目中使用了這些啓動器依賴項。只有沒有對庫的啓動器依賴關係的地方,我才包含了具體的依賴關係。我應該一直使用spring引導啓動器依賴關係嗎?

最近通過的同事說,他不希望整合所有這些起動的依賴到項目中。他非常希望控制要包含的特定依賴項,因此您可以確保只有依賴項位於實際所需的構建和類路徑中。

我認爲這是錯誤的做法,對不對?是否有依賴於類路徑的不利因素(如hamcrest)?

回答

0

你的同事是正確的。在類路徑中不應該有根本不使用的庫。它使戰爭更大,組件掃描速度更慢。 (這也使你IDE有點慢。)

在另一方面,是大量的工作由您自己來維持所有依賴的,但我認爲這是值得的。

0

說實話,我挺你的同事同意,+什麼拉爾夫表明了他的答案。棘手的一點是Spring引導。我想說的是,依賴和項目設置以及整體機制高度依賴於Spring Boot框架提供的現成決策和依賴關係。當你想最終逃脫所有這些可以直接使用的好東西,特別是依賴管理等,那麼恕我直言,你會遇到麻煩。如果重構基於Spring的應用程序,嘗試定義自己的項目結構和所有必需的依賴關係,並且自行連接所有必需的插件,那將是有意義的。但是這樣做會花費時間,並且會增加複雜性......這就是爲什麼Spring Boot和其他框架傾向於在幾個方面斟酌。爲了緩解這種痛苦。這是一個真正的選擇問題,以及將來如何控制。

1

一般來說,我會與你的同事同意,讓您的依賴儘可能乾淨。但是,如果你想使用與Spring Boot相關的任何特性,那麼我會建議你使用starter,因爲它們包含所有必需的依賴關係並啓用必要的自動配置類。如果你自己定義依賴關係和配置,那麼使用Spring Boot就沒有意義了,你可以拋棄它。

相關問題