Spring包含許多功能和特性,并被很好地組織在下圖所示的七個模塊中。本節(jié)將依次介紹每個模塊.
Core包是框架的最基礎(chǔ)部分, 并提供依賴注入(Dependency Injection)特性來使你可管理Bean容器功能。 這里的基礎(chǔ)概念是BeanFactory,它提供Factory模式來消除對程序性單例的需要, 并允許你從程序邏輯中分離出依賴關(guān)系的配置和描述。
構(gòu)建于Beans包上Context包,提供了一種框架式的Bean訪問方式, 有些象JNDI注冊。Context包的特性得自Beans包,并添加了文本消息的發(fā)送,通過比如資源串, 事件傳播,資源裝載的方式和Context的透明創(chuàng)建,如通過Servlet容器。
DAO包提供了JDBC的抽象層,它可消除冗長的JDBC編碼和解析數(shù)據(jù)庫廠商特有的錯誤代碼。 該包也提供了一種方法實現(xiàn)編程性和聲明性事務(wù)管理,不僅僅是針對實現(xiàn)特定接口的類, 而且對所有的POJO。
ORM包為流行的關(guān)系-對象映射APIs提供了集成層,包括JDO,Hibernate和iBatis。 通過ORM包,你可與所有Spring提供的其他特性相結(jié)合來使用這些對象/關(guān)系映射, 如前邊提到的簡單聲明性事務(wù)管理。
Spring的AOP包提供與AOP聯(lián)盟兼容的面向方面編程實現(xiàn),允許你定義, 如方法攔截器和切點,來干凈地給從邏輯上說應(yīng)該被分離的功能實現(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應(yīng)用的Model-View-Controller實現(xiàn)。 Spring的MVC實現(xiàn)不僅僅是一種實現(xiàn),它提供了一種domain model代碼和web form的清晰分離, 這使你可使用Spring框架的所有其他特性,如校驗.
利用積木方式來描述你在各種場合使用Spring的情況, 從Applet一直到完整的使用Spring的事務(wù)管理功能和Web框架的企業(yè)應(yīng)用。
一個典型的使用大部分Spring特性的Web應(yīng)用。使用TransactionProxyFactoryBeans, Web應(yīng)用是完全事務(wù)性的,就像使用EJB提供的那種容器管理的事務(wù)一樣. 所有的你的自定義業(yè)務(wù)邏輯可以通過簡單的POJO來實現(xiàn),并通過Spring的Dependency Injection容器進行管理。其他的服務(wù),如發(fā)送email和校驗,獨立于Web層, 使你能夠決定在哪里執(zhí)行校驗規(guī)則。
Spring的ORM支持包含了Hibernate,JDO和iBatis。如使用HibernateDaoSupport, 你可復(fù)用已經(jīng)存在的Hibernate映射。從Controller無縫整合web層和領(lǐng)域模型, 消除對ActionForms的需要和其他轉(zhuǎn)換HTTP參數(shù)為領(lǐng)域模型的類。
有時,現(xiàn)有情況不允許你徹底地轉(zhuǎn)換到一種不同的框架。Spring沒有 強迫你使用它的全部,它不是一種全有全無 的解決方案?,F(xiàn)有的使用WebWork,Struts,Tapestry或其他的UI框架的前端程序可極佳的
與基于Spring的中間層進行集成,使你可使用Spring提供的事務(wù)處理特性。 你唯一要做的事是使用ApplicationContext來掛接你的業(yè)務(wù)邏輯和 通過WebApplicationContext來集成你的Struts前端程序。
當你需要通過WebService來訪問你的現(xiàn)有代碼時, 你可使用Spring的Hessian-,Burlap-, Rmi- 或者 JaxRpcProxyFactory類。 使得突然給現(xiàn)有應(yīng)用增加遠程訪問時不再那么困難。
Spring也為EJB提供了訪問層和抽象層, 使你可復(fù)用已存在的POJO并將他們包裝在Stateless SessionBean中, 以便在可能需要聲明式安全(EJB中的安全管理,譯者注)的
作者:mixer_a 發(fā)表于2012-4-11 21:22:10
原文鏈接