spring帝國-開篇

純潔的微笑發表於2016-03-18

 spring簡介

    spring是一個開源框架,spring是於2003 年興起的一個輕量級的Java 開發框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中闡述的部分理念和原型衍生而來。它是為了解決企業應用開發的複雜性而建立的。框架的主要優勢之一就是其分層架構,分層架構允許使用者選擇使用哪一個元件,同時為 J2EE 應用程式開發提供整合的框架。從簡單性、可測試性和鬆耦合的角度而言,任何Java應用都可以從spring中受益。spring的核心是控制反轉(IoC)和麵向切面(AOP)。簡單來說,spring是一個分層的JavaSE/EEfull-stack(一站式) 輕量級開源框架。

 

   在開發人員的眼中spring是帝國一樣的存在,幾乎個個領域的技術都有spring的解決方案並且在基礎框架選型為spring後,後續相關的解決方案几乎都是優先選擇spring相關元件,因此抽出時間來對常用的spring元件和原理進行學習、總結。

 

wps626E.tmp

 

spring ioc:IOC是Inversion of Control的縮寫,多數書籍翻譯成“控制反轉”,還有些書籍翻譯成為“控制反向”或者“控制倒置”。本來是由應用程式管理的物件之間的依賴關係,現在交給了容器管理,這就叫控制反轉,即交給了IOC容器,spring的IOC容器主要使用DI方式實現的。不需要主動查詢,物件的查詢、定位和建立全部由容器管理。spring ioc 是spring的核心,在spring中主要使用者管理容器中的bean。

 

spring aop:AOP是OOP的延續,是Aspect Oriented Programming的縮寫,意思是面向方面程式設計。AOP實際是GoF設計模式的延續,設計模式孜孜不倦追求的是呼叫者和被呼叫者之間的解耦,AOP可以說也是這種目標的一種實現。spring aop 也是spring的核心,利用aop的技術可以用來做日誌、許可權、快取等功能實現

 

spring orm:spring支援大多數ORM框架,比如Hibernate,JPA,JDO,TopLink和iBatis(spring2支援iBatis2,現MyBatis3的spring支援由MyBatis社群開發,並非spring)。

 

spring mvc:spring MVC框架是有一個MVC框架,通過實現Model-View-Controller模式來很好地將資料、業務與展現進行分離。從這樣一個角度來說,spring MVC和Struts、Struts2非常類似。

 

spring webservice:spring 支援整合Apache cxf、axis2、xfire等不同集中webservice實現方案。

 

spring transaction:spring完美的支援了對事物的管理,目前主要有兩種實現發難,一種是配置檔案、一種是基於註解來實現。

 

spring jms:spring支援對activemq、RabbitMQ訊息中介軟體的整合。

 

spring data:spring Data 作為springSource的其中一個父專案, 旨在統一和簡化對各型別持久化儲存, 而不拘泥於是關係型資料庫還是NoSQL 資料儲存。

 

spring cache:spring 的快取技術還具備相當的靈活性,不僅能夠使用 SpEL(spring Expression Language)來定義快取的 key 和各種 condition,還提供開箱即用的快取臨時儲存方案,也支援和主流的專業快取例如 EHCache 整合。

 

spring boot:spring-boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。通過這種方式,Boot致力於在蓬勃發展的快速應用開發領域(rapid application development)成為領導者。

 

spring security:spring Security是一個能夠為基於spring的企業應用系統提供宣告式的安全訪問控制解決方案的安全框架。它提供了一組可以在spring應用上下文中配置的Bean,充分利用了spring IoC,DI(控制反轉Inversion of Control ,DI:Dependency Injection 依賴注入)和AOP(面向切面程式設計)功能,為應用系統提供宣告式的安全訪問控制功能,減少了為企業系統安全控制編寫大量重複程式碼的工作。

 

spring schedule:spring在schedule這塊支援JDK Timer、concurrent、quartz三種,這三種任務排程方案在實現機制和呼叫方法上都不同,但spring通過對其包裝,使得基於spring能用統一的配置和編碼風格來使用這三種schedule方案。

相關文章