旦旦而學之,久而不怠焉,迄乎成 --彭端淑
(每天都要這樣小小激勵自己一下)
Spring Framework 是 Java 平台利用依賴注入(Dependency Injection, DI)與控制反轉(Inversion of Control, IoC)核心概念實現的 Web 應用程式開源框架,大幅簡化過去 Java EE Web 應用程式開發,為 Java EE 平台重新構建出許多 Web 應用支援,目前該框架許多核心功能也都可以用於大部份 Java 應用。
Spring 官方網站提到:
We use a lot of the tools that come with the Spring framework and reap the benefits of having a lot of the out of the box solutions, and not having to worry about writing a ton of additional code—so that really saves us some time and energy.
如同官方描述,使用 Spring 框架可以得到許多現成解決方案協助快速開發,可大量節省開發時間,將精力花在業務邏輯開發。
Spring 使用POJO進行輕量級及最小侵入式開發,加上利用控制反轉(Inversion of Control, IoC)核心觀念貫穿,採取依賴注入(Dependency Injection, DI)與介面的方式達成元件鬆散耦合(loose coupling),而剖面導向程式設計(Aspect Oriented Programming, AOP)是將程式功能進行分離切分成不同的模組,各司其職。
Spring 擁有以下特性:
稍微解釋一下什麼是鬆散耦合,耦合指的是系統中元件互相依賴的程度,越少的依賴,重複使用性與彈性就越高,若是A模組牽扯到B、C和D模組,那麼A有很高的依賴,維護起來特別花時間。
Spring Boot 其實是 Spring 框架的簡化版,是由 Pivotal 團隊提供的全新框架,簡單來說就是一個懶人包,也是基於 Java 的開源框架,可以用於創建微服務(MicroService),當初團隊設計目標主要是希望簡化Spring過去開發過程,消除Spring 應用所需的XML配置
,自動化配置讓專案設定變得容易,達成更快更高效的開發生態。
微服務是可以獨立被開發及佈署的軟體架構,每個單一的服務都有自己的流程,讓業務邏輯專注在單一職責。
Spring 官網
Spring Framework 維基百科
Spring的介紹先告一段落了,努力理解Spring是何方神聖時,POJO、IoC、DI、AOP各種專有名詞弄得我好亂阿!
(圖片來源:網路)
還記得在新手學習過程中強調的玩得開心嗎?為了讓學習可以繼續下去,避免陷入深淵,我們先將這些專有名詞放在心中,讓時間沖淡這一切,噢!不是啦~在我們持續學習Spring 時,未來在某個時間點碰到,可以將它再次喚醒,細細體會這些名詞,或許會獲得不一樣的啟發。