二Spring
Spring實際上是《Expert OneonOne JEE Design and Development》一書中所闡述的設計思想的具體實現在OneonOne一書中Rod Johnson 倡導JEE 實用主義的設計思想並隨書提供了一個初步的開發框架實現(interface 開發包)而Spring 正是這一思想的更全面和具體的體現Rod Johnson在interface 開發包的基礎之上進行了進一步的改造和擴充使其發展為一個更加開放清晰全面高效的開發框架
Spring是一個開源框架由Rod Johnson創建並且在他的著作《JEE設計開發編程指南》裡進行了描述它是為了解決企業應用開發的復雜性而創建的Spring使使用基本的JavaBeans來完成以前只可能由EJB完成的事情變得可能了然而Spring的用途不僅限於服務器端的開發從簡單性可測試性和松耦合的角度而言任何Java應用都可以從Spring中受益
簡單來說Spring是一個輕量的控制反轉和面向切面的容器框架當然這個描述有點過於簡單但它的確概括出了Spring是做什麼的為了更好地理解Spring讓我們分析一下這個描述
輕量
從大小與開銷兩方面而言Spring都是輕量的完整的Spring框架可以在一個大小只有MB多的JAR文件裡發布並且Spring所需的處理開銷也是微不足道的此外Spring是非侵入式的典型地Spring應用中的對象不依賴於輕量從大小與開銷兩方面而言Spring都是輕量的完整的Spring框架可以在一個大小只有MB多的JAR文件裡發布並且Spring所需的處理開銷也是微不足道的此外Spring是非侵入式的典型地Spring應用中的對象不依賴於Spring的特定類
控制反轉
Spring通過一種稱作控制反轉(IoC)的技術促進了松耦合當應用了IoC對象被動地傳遞它們的依賴而不是自己創建或者查找依賴對象你可以認為IoC與JNDI相反??不是對象從容器中查找依賴而是容器在對象初始化時不等被請求就將依賴傳遞給它
面向切面
Spring包含對面向切面編程的豐富支持允許通過分離應用的業務邏輯與系統服務(例如審計與事物管理)進行內聚性的開發應用對象只做它們應該做的完成業務邏輯僅此而已它們並不負責(甚至是意識)其它的系統關注點例如日志或事物支持
容器
Spring包含和管理應用對象的配置和生命周期在這個意義上它是一種容器你可以配置你的每個bean如何被創建?基於一個配置原形為你的bean創建一個單獨的實例或者每次需要時都生成一個新的實例以及它們是如何相互關聯的然而Spring不應該被混同於傳統的重量的EJB容器它們經常是龐大與笨重的難以使用
框架Spring是由簡單的組件配置和組合復雜的應用成為可能在Spring中應用對象被聲明式地組合典型地是在一個XML文件裡Spring也提供了很多基礎功能(事務管理持久性框架集成等等)將應用邏輯的開發留給了你
所有Spring的這些特征使你能夠編寫更干淨更可管理並且更易於測試的代碼它們也為Spring中的各種子框架提供了基礎
[] []
From:http://tw.wingwit.com/Article/program/Java/ky/201311/29177.html