天天看點

Spring in action 4 第一章:Spring之旅第一章 Spring之旅

第一章 Spring之旅

1.1簡化Java開發

為了降低Java開發的複雜性,Spring采取了四種關鍵政策:

  •  - 基于POJO的輕量級和最小侵入性程式設計;
  •  - 通過依賴注入和面向接口實作松耦合;
  •  - 基于切面和慣例進行聲明式程式設計;
  •  - 通過切面和模闆減少樣闆式代碼。

1.1.1激發POJO的潛能

Spring的非侵入程式設計模型意味着POJO在Spring應用和非Spring應用中都可以發揮相同的作用。可以通過DI(依賴注入)來進裝配POJO

1.1.2依賴注入

  • 如果一個對象隻通過接口(而不是具體實作或初始化過程)來表明依賴關系,那麼這種依賴能夠在對象本身毫不知情的情況下,用不同的具體實作進行替換。
  • 裝配:建立應用元件之間協作的行為通常稱為裝配。Spring可以采用XML、注解等裝配方式。
  • Spring應用上下文(Application Context):裝載bean的定義并把它們組裝起來。Spring應用上下文全權負責對象的建立群組裝。

1.1.3應用切面

面向切面程式設計(AOP):允許你把遍布應用各處的功能分離出來形成可重用的元件。

1.1.4 使用模闆消除樣闆式代碼

Spring旨在通過模闆封裝來消除樣闆式代碼。

1.2容納你的Bean

Spring容器:負責建立對象,裝配它們,配置它們并管理它們的整個生命周期,從生存(new)到死亡(finalize)。容器是Spring架構的核心。

1.2.1使用應用上下文

常用的Spring應用上下文類型:

① AnnotationConfigApplicationContext:從一個或多個基于Java的配置類中加載Spring應用上下文。

② AnnotationConfigWebApplicationContext:從一個或多個基于Java的配置類中加載Spring Web 應用上下文。

③ ClassPathXmlApplicationcontext:從類路徑下的一個或多個XML配置檔案中加載上下文定義,把應用上下文的定義檔案作為類資源。

④ FileSystemXmlapplicationcontext:從檔案系統下的一個或多個XML配置檔案中加載 上下文定義。

⑤ XmlWebApplicationContext:從Web應用下的一個或多個XML配置檔案中加載上下文定義。

1.2.2 bean的生命周期

Spring in action 4 第一章:Spring之旅第一章 Spring之旅

1.3俯瞰Spring風景線

1.3.1 Spring子產品

Spring in action 4 第一章:Spring之旅第一章 Spring之旅
  1. Spring核心容器:容器是Spring架構最核心的部分,管理Spring的應用中bean的建立、配置和管理。該子產品還包含了Spring bean工廠,它為Spring提供了DI的功能。還提供了許多企業服務,如:E-mail、JNDI通路、EJB內建和排程。所有的Spring子產品都建構于核心容器上。
  2. Spring的AOP子產品(面向切面程式設計子產品):提供了面向切面程式設計的支援
  3. 資料通路與內建:Spring的JDBC和DAO子產品抽象了在JDBC編寫中産生的大量的樣闆式代碼。Spring的ORM子產品建立在對DAO的支援之上,并為多個ORM架構提供了一種建構DAO的簡便方式。但Spring并沒有建立自己的ORM解決方案,而是對許多流行的ORM架構進行了內建。還包含了在JMS(Java Message Service)之上建立的Spring抽象層,它會使用消息以異步的方式與其他應用內建。
  4. Web與遠端調用:提供了面向使用者的web應用,還包含了多種建構與其他應用互動的遠端調用方案。同時Spring還自帶了一個遠端調用架構:HTTP invoker。
  5. Instrume ntation:提供了為JVM提添加代理的功能。
  6. 測試:對于內建的測試,該子產品為加載Spring應用上下文中的bean集合以及與Spring上下文中的bean進行互動提供了支援。

1.3.2 Spring Portfolio

  1. Spring Web Flow:Spring Web Flow建立于Spring MVC架構之上,它為基于流程的會話式Web應用提供了支援。
  2. Spring Web Service:Spring Web Service 提供了契約優先的Web Service模型,服務的實作都是為了滿足服務的契約而編寫的。
  3. Spring Security:利用Spring AOP,Spring Security 為Spring應用提供了聲明式的安全機制。
  4. Spring Integration:Spring Integration提供了多種通用應用內建模式的Spring聲明式風格實作。
  5. Spring Batch:提供對資料的批處理支援
  6. Spring Data:Spring Data使得在Spring中使用任何資料庫都變得非常容易,Spring Data為持久化提供了一種簡單的程式設計模型。
  7. Spring Social:Spring Social是一個社交網絡擴充子產品,它可以幫助通過REST API連接配接Spring應用,其中有些Spring應用可能原本并沒有任何社交方面的功能目标。
  8. Spring Mobile:Spring Mobile 是Spring MVC新的擴充子產品,用于支援移動Web應用開發。
  9. Spring for Android:這個項目,旨在通過Spring架構為開發基于Android裝置的本地應用提供某些簡單的支援。
  10. Spring Boot:該項目,以Spring的視角,依賴于自動配置技術,大量簡化Spring本身的樣闆式代碼。

繼續閱讀