1. 程式人生 > >Spring學習——初步瞭解(一)

Spring學習——初步瞭解(一)

       Spring是於2003 年興起的一個輕量級的Java 開發框架,由Rod Johnson建立。簡單來說,Spring是一個分層的JavaSE/EE full-stack(一站式) 輕量級開源框架,是一個開放原始碼的設計層面框架,他解決的是業務邏輯層和其他各層的鬆耦合問題,因此它將面向介面的程式設計思想貫穿整個系統應用。

            分層:Spring是全面的和模組化的。Spring有分層的體系結構,這意味著你能選擇使用它孤立的任何部分,它的架構仍然是內在穩定的。例如,你可能選擇僅僅使用Spring來簡單化JDBC的使用,或用來管理所有的業務物件。

            輕量級

:從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個大小隻有1MB多的JAR檔案裡釋出。並且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應用中的物件不依賴於Spring的特定類。

            鬆耦合:在軟體領域,“耦合”一般指軟體元件之間的依賴程度。耦合是對一個軟體結構內不同模組之間互連程度的度量。耦合強弱取決於模組間介面的複雜程度,進入或訪問一個模組的點,以及通過介面的資料。

            Spring特性:

            IOC:Spring通過一種稱作控制反轉(IOC)的技術促進了低耦合。當應用了 IOC

,一個物件依賴的其它物件會通過被動的方式傳遞進來,而不是這個物件自己建立或者查詢依賴物件。

            控制反轉,是一種設計模式。第一層含義是控制權的轉移:由傳統的在程式中控制依賴轉移到由容器來控制;第二層是依賴注入:將相互依賴的物件分離,在spring配置檔案中描述他們的依賴關係。他們的依賴關係只在使用的時候才建立。

            AOP:面向切面,是一種程式設計思想,OOP的延續。將系統中非核心的業務提取出來,進行單獨處理。比如事務、日誌和安全等。

            Spring提供了面向切面程式設計的豐富支援,允許通過分離應用的業務邏輯與系統級服務(例如審計(auditing)和事物(transaction)管理)進行內聚性的開發。應用物件只實現它們應該做的——完成業務邏輯——僅此而已。它們並不負責(甚至是意識)其它的系統級關注點,例如日誌或事務支援。