曾幾何時,EJB(Enterprise JavaBeans)儼然成為開發Java企業應用軟體的顯學;不論你的系統是否建置於網路之上,抑或應用到哪一種領域,只要選擇了Java語言,幾乎免不了會被業主要求以EJB開發或是「支援EJB」。
EJB似乎已經成為J2EE的代名詞,不會EJB似乎就代表個人或公司技術能力不夠精實。
Spring加速並簡化J2EE的開發流程
但是,一項技術之臧否並非與使用者人數呈正比。時至今日,不僅純以EJB開發的專案愈來愈少,EJB本身也幾乎被Java社群貶得抬不起頭來。姑且不論EJB有哪些原罪,至少替代技術與方案不斷興起,讓對EJB尚存有一絲幻想的人不得不徹底放棄。
其中最引人注目的莫過於Spring Framework,這個由Rod Johnson領軍研製的透明配方穿甲彈,似乎更能將EJB這臺重型坦克轟得四分五裂。相較於EJB的笨重,Spring的輕巧與優雅,完全突顯出企業應用系統是可以不需依賴應用程式伺服器(Application Server),即能同時具備交易管理、安全控制與同步存取等系統命脈維生機制,又能達成令人滿意的SLR(Service-Level Requirement,服務水準需求)。更何況,EJB最新版3.0也反而回過頭來向Spring、Hibernate這些開源架構取經求解……
Spring Framework的目的很簡單,就是要加速並簡化J2EE應用程式的開發流程。秉持相同理念,本書作者也希望能夠讓使用Spring成為一件輕鬆愉悅的工作。
由於Spring還算是一個初生兒,至今也僅未滿三歲,因此能夠嫻熟運用的人並不多,本書的出現宛如成為J2EE世界的彌賽亞,無啻拯救廣大開發者於EJB無間道之中。
《Spring In Action》讓學習成為一種舒適的經驗
本書秉持Manning出版社「In Action」人像書系列慣有的自然與務實,讓學習Spring成為一種舒適的經驗。書中特別強調「做中學」的精神,不但以淺顯易懂的文字,描述Spring各項核心技術的運作概念,更提供許多簡易的範例,讓讀者能夠立即看懂並親自實做。譬如從頭到尾都有秀場的蹺蹺板譬喻,不但為主題技術提供最佳的解說方式,更能讓讀者發出會心一笑。
書中呈現出來的是一種鼓勵嘗試的學習態度,而非艱澀難啃的學理派論調。畢竟範例驅動(Example-Driven)經證實是最佳的記憶方式之一,而技術書籍的讀者,通常又是很忙碌的技術人員,他們最需要的是能夠直接上手的支援資訊。
本書兩位作者都是具有多年開發大型專案經驗的軟體工程師,也都是熱心的Java開放源碼技術倡導者,常可在Java社群與論壇上看到不少發表過的文章。
他們提供了最為貼近軟體開發人員的解說方式,偶而穿插一些幽默的笑話,或援引眾所周知的電影情結,來比擬Spring的功能,下筆行雲流水,技術掌握程度也能讓讀者一次到位,增進閱讀速度。
本書的風格可從首章即可窺見一般:除了前兩小節介紹了使用Spring所需具備的最基本概念之外,第三小節開始即以範例立刻切入重點,讓讀者不至於看了一大堆歷史背景之類的文字反而感覺騷不著癢處,也使得討論失焦。
而詳細技術原理與實做方式,都會在後面的主題章節中做更精闢的解釋,所以讀者不用擔心學到的只是沒有價值皮毛。相形之下,若能從一開始便了解Spring的基本用法,如beans的撰寫規則與container設定檔的宣告方式,更有助於降低對Spring的陌生感,進而產生興趣。
另一方面,作者並沒有讓書文中佈滿程式碼,而是適時讓原理的闡述出現在適當位置,這讓《Spring In Action》在深度與廣度之間取得了一個很平衡的拿捏。看慣了那套動物系列書籍的讀者,相信更會對人像系列有另一番的體認。
闡述Spring基本原理,是本書最獨到之處
本書最精采的部份就是前三章,算是Spring基本原理的闡述。IOC(Inversion Of Control)與AOP(Aspect-Oriented Programming)是Spring賴以攻城掠地的兩柄利刃,藉由這兩帖先進的架構層次範型,Spring得以不斷延伸其觸角,各種IT專門技術都能平順而無礙地被整合在container之中。
想當初看Spring官方的參考文件時,AOP那部分一直有看沒有懂,深覺未何沒有一本較為「讀者導向」的書籍來開導世人;但是在讀過本書的第三章後,Spring那玄奇的AO架構,頓時清晰地映在腦幹中,也終於領會到Spring AOP的威力。
所有類別都像是渾然天成般地被Spring巧妙運用著,使用者三兩下便能寫出優雅而簡潔的AO-based business code,那種很具有結構的安全感,豈是徒手硬幹所能比擬。這種令讀者心曠神怡的感覺,絕對是本書最獨到之處!
Spring運用AOP成功模擬了EJB最為人所稱道的CMT(Container-Managed Transaction),讓Spring也支援宣告式交易,以及利用JTA來做到分佈式的交易管理。
這主題在書中的第二大部份有很多描述篇幅,因為這是Spring自認能取代EJB的最大利器。當然Spring也提供ORM(Object Relational Mapping)及分佈式遠端計算能力,對於Spring在這些企業級應用系統之底層技術上的支援能力有疑異者,也可在此找到答案。
客觀比較Spring與EJB
本書當然不只講解Spring的優點,這樣歌功頌德的事,作者認為交給出版商去做就行了。 書中有許多論點是客觀比較Spring跟EJB,譬如一般使用者最關心的分散式運算與交易控管等議題。當然Spring身為輕量型的container,與已具備了Application server知名廠商支援的重裝級競爭對手-EJB,在很多方面不僅用法不同,連核心概念都相去甚遠,因此很難說孰優孰劣。但是《Spring In Action》詳實地告訴讀者EJB幾乎可以完完全全被Spring取代掉,言下之意作者當然希望我們多去使用Spring。
另外本書也提出許多其他的Framework,不論同樣身為LightWeight Container或是其他Web/Persistence Framework,作者都強調那不是競爭關係,而是可以被整合在一起使用的。事實上Spring framework本身也是兼容並蓄,整合了許多其他的Framework,讓使用起來更為方便,且系統資源也更容易被統合控管。
書中第7、9、10三章便有不少篇幅講解Spring的整合能力,相信可以滿足其他架構的使用者。其實身為開源軟體的使用者,我們也應當有著開放的心胸,不是嗎?
適合作為學習Spring的入門書
另外必須要提醒一下,書中有些打字上的誤謬是出現在程式碼中,這稍微折損了一點閱讀的樂趣。不過讀者若是有仔細研讀上下文,應該能很容易地揪出這些臭蟲。
當然這可能只是書商的問題,幸好現在Manning的網站上,已經有了刊誤表,希望再版時,能以最完美的品質面市。
亞馬遜網站給予本書四顆半星的評價等級,幾乎一面倒的讀者佳評,給予本書最強而有利的支援。
我認為本書很適合做為Spring的入門書籍,想進入Spring與J2EE世界的人,可以完全拋開Spring官方參考文件,畢竟那些較進階的用法資料,等到需要時再去翻查就行了。閱讀本書,不需花費您太多的寶貴時間,請帶著一種「如沐春風」的心情來迎接Spring framework吧!
《作者簡介》白志偉
畢業於政治大學資訊管理所,現任艾群科技專案研發部資深工程師。專精於物件導向分析與設計、軟體專案開發與管理、J2EE 企業網站建置、Java行動內容傳輸技術等,並通過MCSE、SCJP、SCWCD、 SCBCD等認證。曾任職於華碩科技、曜碩科技;參與過華碩自有品牌手機MMI/瀏覽器、新加坡StarHub電信公司手機行動內容下載平臺、MoJa ASP行動內容供應服務系統、遠傳電信企業內部文字廣播系統、中華電信Xuite郵件服務預約寄信系統、遠傳電信加值服務廠商維運系統、愛普生經銷商社群網站等專案建置。
熱門新聞
2026-01-16
2026-01-16
2026-01-18
2026-01-16
2026-01-16
2026-01-18
2026-01-16