《Spring3實戰》摘要(1)---spring簡介

spring的基本理念就是簡化Java開發,spring採取了一下4種關鍵策略:
- 基於POJO的輕量級和最小侵入性編程;
- 通過依賴注入和麪向接口編程實現鬆耦合;
- 基於切面和慣例進行聲明式編程;
- 通過切面和模板減少樣板式代碼。

第一章 Spring之旅

1.1 Spring容器

  1. 在基於Spring的應用中,應用對象生存於Spring容器中。Spring容器創建對象,裝配它們,配置它們,管路它們的整個生命週期。
  2. Spring自帶了幾種容器實現,可以歸爲兩種不同的類型。Bean工廠(由org.springframework.beans.factory.BeanFactory接口定義)是最簡單的容器,提供基本的DI(依賴注入Dependency Injection)支持。應用上下文(由org.springframework.context.ApplicationContext接口定義)基於BeanFactory之上構建,並提供面向應用的服務,例如從屬性文件解析文本信息的能力,以及發佈應用時間給感興趣的時間監聽者的能力。

1.2 Spring應用上下文和模塊

1.2.1 Spring常用的3種應用上下文(第七章)

應用上下文 說明
ClassPathXmlApplicationContext 從類路徑下的XML配置文件中加載上下文定義,把應用上下文定義文件當作類資源
FileSystemXmlApplicationContext 讀取文件系統下的XML配置文件並加載上下文定義
XmlWebApplicationContext 讀取Web應用下的XML配置文件並裝載上下文定義

加載應用上下文舉例:

//從文件系統中加載應用上下文
ApplicationContext context = new FileSystemXmlApplicationContext("c:/applicationContext.xml");
//從類路徑(包含JAR文件)下加載應用上下文
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
//加載上下文,並訪問bean
ApplicationContext ctx = new ClassPathXmlApplicationContext("com/spring/springdemo/bean/springidol/spring-idol.xml");
<!-- duke是在spring-idol.xml文件中配置的一個實現了Performer接口的類的bean -->
Performer performer = (Performer)ctx.getBean("duke");
performer.perform();

1.2.2 Spring模塊

這裏寫圖片描述

  • 核心Spring容器
    • 容器是Spring框架最核心的部分,它負責Spring應用中的Bean的創建、配置和管理。在該模塊中,Bean工廠提供依賴注入(第二章),應用上下文提供了配置Spring的不同方式。該模塊也提供了例如郵件、JNDI訪問、EJB繼承和調度等許多企業服務。
  • Spring的AOP模塊
    • 在AOP模塊(第4章)中,Spring對面向切面編程提供了豐富的支持。藉助AOP,可以將遍佈應用的關注點(例如事務和安全)從他們所應用的對象中解耦出來。
  • 數據訪問與集成
    • 使用JDBC編寫代碼通常會導致大量的樣板式代碼。Spring的JDBC和DAO(data access objects)模塊封裝了這些樣板式代碼,使我們的數據庫代碼鞭策簡單明瞭,還可以避免因爲釋放數據庫資源失敗而引發的問題。
    • Spring提供了ORM(object-relational mapping)模塊。對許多流行的ORM框架進行了集成,Spring的事務管理(第6章)支持所有的ORM框架以及JDBC。
    • 本模塊同樣包含了在JMS之上構建的Spring抽象層,使用消息以異步的方式與其他應用集成。
  • Web和遠程調用
    • Spring集成了多種流行的MVC框架(第七章),但它的Web和遠程調用模塊自帶了一個強大的MVC框架。該框架提供了兩種形式:面向傳統Web應用的基於Servlet的框架和麪向使用Java Portlet API的基於Portlet的應用。
    • 除了面向用戶的Web應用,該模塊還提供了構建與其他應用交互的幾種遠程調用的選擇。Spring遠程調用服務(第10章)集成了RMI、Hessian、Burlap、JAX-WS,同時Spring還自帶了一個遠程調用框架:HTTP invoker。

1.3 Spring的新特性

1.3.1 Spring2.5新特性

Spring2.5的重大意義在於擁抱註解驅動開發,Spring2.5之前的版本都是採用基於XML的配置。Spring2.5引入了幾種使用註解額方式,顯著減少了配置Spring所需要的XML信息。

  • 使用@Autowired實現基於註解驅動的依賴注入和使用@Qualifier實現細粒度的自動裝配(auto-wiring)控制。
  • 支持JSR-250註解,包括支持命名資源依賴注入的@Resource,以及對生命週期方法支持的@PostConstruct和@PreDestory。
  • 自動掃描使用@Component註解(或其他構造型註解)所標註的Spring組件。
  • 一個全新的基於註解驅動的SpringMVC編程模型。
  • 基於JUnit4和註解的一個新的集成測試框架。
  • 完全支持Java 6和Java EE 5。
  • 通過Bean的名字來編程切面的新的Bean命名切入點表達式。
  • 內嵌支持AspectJ的類加載器織入。
  • 新的XML命名空間,包括配置應用上下文細節的context命名空間和配置消息驅動Bean的jms命名空間。
  • 支持在SqlJdbcTemplate中使用命名參數。

1.3.2 Spring3.0新特性

從3.0版本開始,Spring要求java 5或更高版本,不再支持Java 4。

  • Spring MVC 全面支持Rest,Spring MVC 控制器響應REST風格的URL並返回XML、JSON、RSS或者其他適宜的響應。(第11章)。
  • 新的表達式語言把Spring的依賴注入帶入了一個新的高度,允許注入各種來源,包含其他Bean和系統屬性。(第2章)
  • Spring MVC 新的註解,包含@CookieValue和@RequestHeader,分別從Cookie和請求頭中獲取值。(第7章)
  • 一個新的XML命名空間,用來減少Spring MVC 配置。
  • 支持基於JSR-302註解的聲明式校驗。
  • 支持新的JSR-330依賴注入規範。
  • 通過註解驅動聲明異步和調度方法。
  • 一個新的註解驅動的配置模型,幾乎可以避免使用XML進行Spring配置。(第2章)
  • Spring Web Service 項目的OXM功能已被遷移到Spring框架核心。

1.3.4 Spring Portfolio

Spring遠不止Spring框架所帶來的那些功能。整個Spring Portfolio包括多個構建於核心Spring框架之上的框架和類庫。概括地說,整個Spring Portfolio幾乎爲每一個領域的Java開發都提供了Spring編程模型。

1 Spring Web Flow

這裏寫圖片描述

2 Spring Web Service

這裏寫圖片描述

3 Spring Security

這裏寫圖片描述

4 Spring Integration

這裏寫圖片描述

5 Spring Batch

這裏寫圖片描述

6 Spring Social

這裏寫圖片描述

7 Spring Mobile

這裏寫圖片描述

8 Spring Dynamic Modules

這裏寫圖片描述

9 Spring LDAP

這裏寫圖片描述

10 Spring Rich Client

這裏寫圖片描述

11 Spring .NET

這裏寫圖片描述

12 Spring-Flex

這裏寫圖片描述

13 Spring Roo

這裏寫圖片描述

14 Spring Extensions

這裏寫圖片描述

發佈了66 篇原創文章 · 獲贊 37 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章