Spring學習之==>入門知識

1、Spring是什麼?spring

  Spring 是一種輕量級的、非侵入式的 Java/JavaEE 應用框架。Spring 使用的是基本的 JavaBean 來完成之前只可能由EJB完成的事情。然而,Spring的用途不單單限於服務端的開發。從簡單性、可測試性和鬆耦合性角度而言,絕大部分Java應用均可以從Spring中受益。數據庫

  Spring 的核心是控制反轉(IoC)和麪向切面(AOP)。簡單來講,Spring是一個分層的 JavaSE/EE full-stack(一站式) 輕量級開源框架。編程

2、Spring能幹什麼?設計模式

  籠統的說,Spring 能做爲一個超級的"粘合"平臺,把不少的技術有效整合到一塊兒 造成一個總體,以更好地解決問題,並使系統結構更優良、性能更出衆。(體現體系結構設計的:組件式、裝配式、插拔式、複用性、無侵入性等)。緩存

  Spring 能幹的事情不少,具體點說,最基本的有如下幾條:框架

  • Ioc/DI
  • AOP
  • 對JDBC和ORM的支持
  • 對事物的支持
  • 各類技術的整合
  • Web應用框架(Spring MVC)

3、Spring有什麼?工具

從上圖能夠看出Spring總共包含了大約20個模塊,這些模塊又被組成成爲: 核心容器模塊、數據訪問/集成部分、Web部分、AOP部分和測試支持 幾個部分。性能

核心容器部分(Core Container)學習

  • Core和Beans模塊: 提供了Spring最基礎的功能,提供IoC和依賴注入特性;
  • Context模塊: 基於Core和Beans來構建,它提供了用一種框架風格的方式來訪問對象,有些像JNDI註冊表。Context封裝包繼承了beans包的功能,還增長了國際化(I18N)、事件傳播、資源裝載、以及透明建立上下文;
  • Expression Language: 表達式語言模塊,提供了在運行期間查詢和操做對象圖的能力;

數據訪問/集成部分(Data Access/Integration)測試

  • JDBC模塊: 提供對JDBC的抽象,它可消除冗長的JDBC編碼和解析數據庫廠商特有的錯誤代碼;
  • ORM模塊: 提供了經常使用的"對象/關係" 映射APIs的集成層。其中包括:JAP、JDO、Hibernate、Ibatis;
  • OXM模塊: 提供一個支持Object和XML進行映射的抽象層,其中包括JAXB、Castor、XMLBeans、JiBX、XStream;
  • JMS模塊: 提供一套"消息生產者、消費者"模板用於更加簡單的使用JMS;
  • Transaction模塊: 支持程序經過簡單聲明性事務管理,只要是Spring管理對象都能獲得Spring事務管理的好處;

Web部分

  • Web模塊:提供了基礎的Web功能;
  • Web-Servlet模塊:提供了Web應用的Model-View-Controller(MVC)實現;
  • Web-Struts模塊:提供了對Struts集成的支持;
  • Web-Portlet模塊:提供了在Portlet環境下的MVC實現;

AOP部分

  •  AOP模塊: 提供了符合AOP聯盟規範的面向方面的編程實現,能夠定於如:方法攔截器和切入點;
  • Aspects模塊:提供了對AspectJ的集成;
  • Instrumenttation模塊:提供了一些類級的工具支持和ClassLoader級的實現;

Test部分

  •  Test模塊: 提供對使用JUnit和TestNG來測試Spring組件的支持,它提供一致的ApplicationContexts並緩存這些上下文,它還能提供mock對象,使得你能夠獨立的測試代碼;

4、Spring的優勢

  • 方便解耦,簡化開發 (高內聚低耦合)
    • Spring就是一個大工廠(容器),能夠將全部對象建立和依賴關係維護,交給Spring管理;
    • spring工廠是用於生成bean
  • AOP編程的支持
    • Spring提供面向切面編程,能夠方便的實現對程序進行權限攔截、運行監控等功能;
  • 聲明式事務的支持
    • 只須要經過配置就能夠完成對事務的管理,而無需手動編程;
  • 方便程序的測試
    • Spring對Junit4支持,能夠經過註解方便的測試Spring程序;
  • 方便集成各類優秀框架
    • Spring不排斥各類優秀的開源框架,其內部提供了對各類優秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持;
  • 下降JavaEE API的使用難度
    • Spring 對JavaEE開發中很是難用的一些API(JDBC、JavaMail、遠程調用等),都提供了封裝,使這些API應用難度大大下降;
  • Java 源碼是經典學習範例
    • Spring的源碼設計精妙、結構清晰、匠心獨運,到處體現着大師對Java設計模式靈活運用以及對Java技術的高深造詣。Spring框架源碼無疑是Java技術的最佳實踐範例。若是想在短期內迅速提升本身的Java技術水平和應用開發水平,學習和研究Spring源碼將會使你收到意想不到的效果;
相關文章
相關標籤/搜索