版權與免責聲明:本博客文章翻譯自《Spring in action》第三版,原書版權歸原做者及其出版單位全部,本人僅出於我的興趣,翻譯其中內容。本人不以盈利爲目的,放置在博客中僅爲了方便網友閱讀原做遇到困難時參考。本人嚴正聲明,本人並不擁有翻譯該做品之正當權力,所以嚴禁他人轉載,亦不保證做品之正確性;如侵犯您的權益,望告知,即行關閉。
web
翻譯聲明:本人目前計劃天天翻譯兩頁,且不作任何工期承諾,以前未在網上發現相似內容,如已有類似內容,望告知,也免得我翻譯了。編程
Chapter 1 Piece 1安全
本章涵蓋:app
事情還得從一顆豆子(bean)提及。框架
1996年,當時的Java還只是一個新興的、激動人心的、即將流行的平臺。大量的開發者便涌向這門語言,由於他們見識到了如何用applets建立豐富和動態的web應用。這些開發者很快發現,除了能讓雜技動畫人物活動起來以外,這門陌生的新語言還能夠作不少事。與以前任何語言都不一樣的是,Java讓編寫複雜的、由鬆散部件組成的應用成爲可能。他們由於applets而接觸Java,可是讓他們最終決定留下來的是Java的組件特性。分佈式
在這一年的12月,Sun公司發佈了JavaBeans 1.00-A規範。JavaBeans定義了一個針對Java的軟件組件模型。這個規範定義了一組編碼規範,使簡單Java對象不只可以獲得重用,而且能輕鬆嵌入到更加複雜的應用程序當中。儘管JavaBeans是做爲定義可重用應用組件的通用方法而推出的,卻最終主要用於構建用戶界面組件。由於它們彷佛過於簡單了,以致於根本沒法應付任何「實際」工做。企業級開發者們的需求並未獲得知足。測試
複雜的應用程序,一般須要諸如事物支持、安全性和分佈式計算這樣的服務,可是JavaBeans規範並未直接提供。因而在1998年三月,Sun又推出了企業級JavaBeans(EJB)規範 的1.0版本。這份規範將Java組件的理念擴展到了服務端,提供了需求很是緊迫的企業級服務,可是卻喪失了早期JavaBeans規範的簡潔性。除了名字以外,EJB與早期的JavaBeans規範截然不同。動畫
儘管確實有不少成功的應用程序基於EJB,可是EJB從未達到它的預期目標:下降企業級應用程序的開發複雜度。不錯,EJB的聲明式編程範式簡化了開發過程的各個基礎層面,好比事物和安全性。可是,另外一方面,託管部署描述符和配套代碼(家庭和遠程/本地接口)等工做又增長了開發難度。慢慢的,許多開發者再也不對EJB抱有指望。所以,近幾年它的受歡迎程度不斷下降,促使開發者尋求更簡便的方法。編碼
如今,Java組件開發終於回到了正軌。新的編程技巧,包括面向方面編程(AOP)和依賴注入(DI),使JavaBeans擁有以前EJB提供的大部分功能。這些技術摒棄了EJB的複雜度,爲普通簡單Java對象(POJOs)保留了傳統的EJB的聲明式編程範式。你無需再編寫笨重的EJB組件,簡單的JavaBean足矣。spa
引領輕量級基於POJO開發潮流的就是Spring框架,也就是本書要討論的主題。本章,咱們將從全局出發,讓你大概瞭解什麼是Spring。這一章將讓你對Spring致力於解決的各類問題有個清晰的認識,同時也指明瞭本書的其餘部分的主旨。事有輕重緩急——讓咱們搞清楚到底Spring是什麼。
簡化Java開發
Spring是一個開源框架,最初由Rod Johnson建立,而且在他的著做《行家一對一:J2EE設計與開發》中進行了描述。Spring是爲了下降企業級應用開發的複雜度而創立的,它使得使用普通JavaBeans去實現以前只有EJB才能實現的功能成爲可能。可是Spring的用武之地並不只限於服務端的開發。任何Java程序都能在簡潔性、可測試性和鬆散耦合性方面從Spring獲益。