第?1?章?簡介

          1.1.?概覽

          Spring包含許多功能和特性,并被很好地組織在下圖所示的七個模塊中。本節(jié)將依次介紹每個模塊.

          Spring框架概覽

          Core 包是框架的最基礎部分, 并提供依賴注入(Dependency Injection)特性來使你可管理Bean容器功能。 這里的基礎概念是BeanFactory,它提供Factory模式來消除對程序性單例的需要, 并允許你從程序邏輯中分離出依賴關系的配置和描述。

          構建于Beans包上Context包,提供了一種框架式的Bean訪問方式, 有些象JNDI注冊。Context包的特性得自Beans包,并添加了文本消息的發(fā)送,通過比如資源串, 事件傳播,資源裝載的方式和Context的透明創(chuàng)建,如通過Servlet容器。

          DAO包 提供了JDBC的抽象層,它可消除冗長的JDBC編碼和解析數(shù)據(jù)庫廠商特有的錯誤代碼。 該包也提供了一種方法實現(xiàn)編程性和聲明性事務管理,不僅僅是針對實現(xiàn)特定接口的類, 而且對所有的POJO

          ORM包 為流行的關系-對象映射APIs提供了集成層,包括JDO,Hibernate和iBatis。 通過ORM包,你可與所有Spring提供的其他特性相結(jié)合來使用這些對象/關系映射, 如前邊提到的簡單聲明性事務管理。

          Spring的AOP包提供與AOP聯(lián)盟兼容的面向方面編程實現(xiàn),允許你定義, 如方法攔截器和切點,來干凈地給從邏輯上說應該被分離的功能實現(xiàn)代碼解耦。 使用源碼級的元數(shù)據(jù)功能,你可將各種行為信息合并到你的代碼中,有點象.Net的attribute。

          Spring的Web包提供了基本的面向Web的綜合特性,如Multipart功能, 使用Servlet監(jiān)聽器的Context的初始化和面向Web的Applicatin Context。 當與WebWork或Struts一起使用Spring時,這個包使Spring可與其他框架結(jié)合。

          Spring的Web MVC包提供了面向Web應用的Model-View-Controller實現(xiàn)。 Spring的MVC實現(xiàn)不僅僅是一種實現(xiàn),它提供了一種domain model代碼和web form的清晰分離, 這使你可使用Spring框架的所有其他特性,如校驗.

          1.2.?使用場景

          利用積木方式來描述你在各種場合使用Spring的情況, 從Applet一直到完整的使用Spring的事務管理功能和Web框架的企業(yè)應用。

          典型的完整Spring Web應用

          一個典型的使用大部分Spring特性的Web應用。使用TransactionProxyFactoryBeans, Web應用是完全事務性的,就像使用EJB提供的那種容器管理的事務一樣. 所有的你的自定義業(yè)務邏輯可以通過簡單的POJO來實現(xiàn),并通過Spring的Dependency Injection容器進行管理。其他的服務,如發(fā)送email和校驗,獨立于Web層, 使你能夠決定在哪里執(zhí)行校驗規(guī)則。 Spring的ORM支持包含了Hibernate,JDO和iBatis。如使用HibernateDaoSupport, 你可復用已經(jīng)存在的Hibernate映射。從Controller無縫整合web層和領域模型, 消除對ActionForms的需要和其他轉(zhuǎn)換HTTP參數(shù)為領域模型的類。

          使用了第三方框架的Spring中間層

          有時,現(xiàn)有情況不允許你徹底地轉(zhuǎn)換到一種不同的框架。Spring沒有 強迫你使用它的全部,它不是一種全有全無 的解決方案。現(xiàn)有的使用WebWork,Struts,Tapestry或其他的UI框架的前端程序可極佳的 與基于Spring的中間層進行集成,使你可使用Spring提供的事務處理特性。 你唯一要做的事是使用ApplicationContext來掛接你的業(yè)務邏輯和 通過WebApplicationContext來集成你的Struts前端程序。

          遠程使用場景

          當你需要通過WebService來訪問你的現(xiàn)有代碼時, 你可使用Spring的Hessian-,Burlap-, Rmi- 或者 JaxRpcProxyFactory類。 使得突然給現(xiàn)有應用增加遠程訪問時不再那么困難。

          EJBs - 封裝現(xiàn)有的POJO

          Spring也為EJB提供了訪問層和抽象層, 使你可復用已存在的POJO并將他們包裝在Stateless SessionBean中, 以便在可能需要聲明式安全(EJB中的安全管理,譯者注)的可升級的可容錯的Web應用中使用。

          Feedback

          # re: 推薦一個spring的教程,轉(zhuǎn)了簡介過來.  回復  更多評論   

          2007-07-12 12:30 by apec
          咋這么眼熟呢?

          posts - 43, comments - 200, trackbacks - 0, articles - 2

          Copyright © Hally

          主站蜘蛛池模板: 成安县| 台北县| 社旗县| 岢岚县| 洛阳市| 邮箱| 都江堰市| 长治市| 图木舒克市| 灵台县| 漳州市| 阿克陶县| 固原市| 泰来县| 江永县| 昆明市| 嘉黎县| 离岛区| 定西市| 太仆寺旗| 铁岭县| 淮南市| 太仓市| 沾化县| 瑞金市| 安图县| 乐都县| 治多县| 富裕县| 楚雄市| 新巴尔虎右旗| 横峰县| 海淀区| 长丰县| 永和县| 安达市| 新蔡县| 布尔津县| 舒兰市| 姜堰市| 蒲城县|