Spring Framework 簡介

我從今年 10 月 23 日開始學 Spring Framework ,學到現在有一個月多,大概看熟了。

學程式,起頭很簡單,只要會一點點指令就開始朝著目標寫,一句一句寫,總能寫完、寫對;學 Spring Framework ,起頭很難,需要概括而詳細地理解整體,而不宜胡亂嘗試,以至於減低信心。

開宗明義

Spring Framework 是被動式的框架。如主軸所說 “Inversion of Control" 的意思,它提供一種寫程式的辦法,將原本蠻自由的 Java 程式開發的風格變得稍微僵化,使得應用軟體的開發變得比較簡單。

說明

  1. 被動式: Spring Framework 可以搭配 Maven ,而應用軟體的檔案與目錄架構,是依照 Maven 的慣例。 Spring Framework 可以使用 property 檔案做設定,而設定檔的作法,是依照 JEE 的慣例。 Spring Framework 可以做網頁開發,而網頁開發的元素,例如 deployment descriptor 檔案,是按照 web container 的慣例。
  2. 僵化: Spring Framework 告訴你說,「來,我提供一些模板以及接合元件,你只要自己寫好零件即可」。本來 JEE 可以讓你自由發揮,把物件捏塑成各種奇怪的模樣,設計也可以抽象且多樣; 而 Spring Framework 則把抽象的東西拉回到比較具體一些的位置,並要你謹守應用軟體的特定架構與元件分類。

為什麼難學

  1. 約定比設定較優先:這一點,就像是許多軟體公司所維護,前人的應用軟體,經常都整理成許多的祕密約定:「只要在這個變數設定一種數值,軟體的行為就會變成什麼樣子」,「只要在那個檔案第幾行加一個魔法數字,系統就會變成什麼樣子」。在傳統的軟體公司裡,這些密技由一個人身上,傳承到另一個人身上;而在 Spring Framework 裡,「哪裡若不設定就會按照什麼約定的行為」,大量的外部化知識,成為大量文件,需要花費很多時間熟讀。
  2. 要學習把很多東西的名字叫出來: ApplicationContext 是什麼? WebApplicationContext 又是什麼?什麼是 deployment descriptor ?什麼是 BeanFactory 而什麼是 FactoryBean ?有個目錄名叫 WEB-INF ,它是叫做什麼東西? META-INF 是什麼? Component? Service? Repository? Config? 甚至,「什麼叫做 JSP 」。以上這些詞彙,如果認不得誰是誰,那麼,閱讀 Spring Framework 的資料也會有困難。 “JEE" ,我都想大叫 “Gee whiz" 了。
  3. 有更多東西要讀:當你好不容易讀熟 Spring Framework 時,會發現它是與內部架構相關,是中立的,而因此會發現,還需要閱讀其他軟體模組的手冊,才知道整個應用軟體要怎麼做。
廣告

About 黃耀賢 (Yau-Hsien Huang)

熱愛 Erlang ,並且有相關工作經驗。喜歡程式語言。喜歡邏輯。目前用 Python 工作。
本篇發表於 Programming, Uncategorized, Web Programming。將永久鏈結加入書籤。