Spring
是由 Rod Johnson 撰寫,並在其著作 Expert One-on-One: J2EE Design and Development
中有提到過,它是個輕量級(Lightweight)容器(Container)、實現 IoC(Inversion of
Control)、AOP(Aspect-oriented
programming)概念,是一個全方位的應用程式(Application)框架(Framework),可協助建立以往在 EJB
下才有可能建立的一些應用程式。
從第一個
Spring
應用程式開始,逐步了解何謂依賴注入,以及如何使用 Spring 的容器功能來管理 Bean,了解 Bean 在 Spring 容器中的生命週期。
理想上對於
Bean 來說,它不需要意識到
Spring 容器的存在,然而有時候 Bean 仍必須知道有關於 Spring 容器或自己的一些訊息,而另一方面,您可能必須讓容器對 Bean
進行一些額外處理。
ApplicationContext
除了具備如
BeanFactory 基本的容器管理功能之外,並支援更多應用程式框架的特性,像是資源的取得、訊息解析、事件的處理與傳播。
AOP
的觀念與術語都不是很直覺,可以先從代理機制(Spring 實現 AOP 的一種方式)來看看實際的例子,從而了解 AOP 的觀念與各種術語。
Advices
包括了Aspect
的真正邏輯,由於縫合至Targets的時機不同,Spring 提供了幾種不同的 Advices。
Pointcut
定義了 Advice
的應用時機,在 Spring 中,使用 PointcutAdvisor 將 Pointcut 與 Advice 結合成為一個物件,Spring
中大部分內建的 Pointcut
都有對應的 PointcutAdvisor。
為特殊的
Advice,它影響的不是方法的流程,而是影響整個物件的行為,為物件動態 mixin 職責。
自動代理可以讓您
不用為每一個要被 Advised 的
Target 手動定義代理物件,透過 Bean 名稱或是 Pointcut 的比對,自動為符合的 Target 建立代理物件。
Spring
提供了 DAO
框架,讓應用程式開發時無須耦合於特定資料庫技術。
Spring
在 JDBC
的使用上提供了幾個類別,讓您可以簡化 JDBC 在使用時的流程。
Spring
提供編程式的交易管理(Programmatic transaction management)與宣告式的交易管理(Declarative
transaction management),為不同的交易實作提供了一致的編程模型。
Spring
整合了對 Hibernate
的設定,並提供有 HibernateTemplate 等類別,讓您在結合 Hibernate 時可以簡化使用上的流程。
從一個最簡單的
Spring Web
應用程式,來看看 Spring MVC 框架的架構與 API 組成元素。
與其它 Web
框架的 Action
物件不同的是,Spring 提供了豐富的 Controller 相關類別,讓您可以依需求來製作自己所需的 Controller 物件。
介紹如何在
Controller上搭配使用驗證器(Validator)、如何實作Command資料的型態轉換,以及如何使用Spring的相關API來實作檔案
上傳的功能。
當使用 JSP
作為 View 層技術時,您可以結合
JSTL 以及 Spring 提供的標籤。
除了 JSP
View
層技術之外,您還可以使用其它的 View 層技術,或建立自己的 View Class。
您可以將
Spring 與現在的一些 Web
框架結合在一起,重點都在於如何讓 Web 框架意識到 Spring 的存在。
Spring
提供了一致的使用方式,即使所採用的遠程服務技術不儘相同,在 Spring 中運用它們的方式卻是一致的。
Spring 使用 JmsTemplate 簡化了 JMS 的開發過程。
對於郵件發送服務
的支援是由Spring的
org.springframework.mail.MailSender介面所定義,它有兩個實作類別,
org.springframework.mail.cos.CosMailSenderImpl與
org.springframework.mail.javamail.JavaMailSenderImpl。
Spring則對
java.util.Timer提供了抽象封裝,讓您可以善用Spring的容器管理功能,而Spring對Quartz進行了封裝,讓它在使用上更加方
便。
|
|