From Gossip@caterpillar
開源框架: Spring Gossip
![春天來了?。。。 春天來了?。。。](http://caterpillar.onlyfun.net/Gossip/SpringGossip/images/bee.jpg)
這邊的文件將以我之前曾寫過的 文件 為基礎,並在 Spring 1.2.5 的基礎上撰寫範例以作重新整理的動作。
從第一個 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的 org.springframework.mail.MailSender介面所定義,它有兩個實作類別, org.springframework.mail.cos.CosMailSenderImpl與 org.springframework.mail.javamail.JavaMailSenderImpl。
Spring則對 java.util.Timer提供了抽象封裝,讓您可以善用Spring的容器管理功能,而Spring對Quartz進行了封裝,讓它在使用上更加方便。
|