永久免费看黄A片无码软件,japanese 在线观看国产,强奷高H猛烈失禁潮喷播放,亚洲成精品自拍

rexian

咨詢電話:023-6276-4481

熱門文章

聯(lián)系方式

電 話:023-6276-4481

郵箱:broiling@qq.com

地址:重慶市南岸區(qū)亞太商谷6幢25-2

當前位置:網(wǎng)站首頁 > 技術文章 > Spring框架概述

Spring框架概述

編輯:pansiqin 發(fā)表時間:2017-12-29 12:22:57
pansiqin

Spring是什么?

   Spring是一個開源框架,它由RodJohnson創(chuàng)建。它是為了解決企業(yè)應用開發(fā)的復雜性而創(chuàng)建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。


¨目的:解決企業(yè)應用開發(fā)的復雜性

¨功能:使用基本的JavaBean代替EJB,并提供了更多的企業(yè)應用功能

¨范圍:任何Java應用


簡單來說,Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架。


■輕量——從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個大小只有1MB多的JAR文件里發(fā)布。并且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應用中的對象不依賴于Spring的特定類。

■控制反轉——Spring通過一種稱作控制反轉(IoC)的技術促進了松耦合。當應用了IoC,一個對象依賴的其它對象會通過被動的方式傳遞進來,而不是這個對象自己創(chuàng)建或者查找依賴對象。你可以認為IoC與JNDI相反——不是對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴傳遞給它。

■面向切面——Spring提供了面向切面編程的豐富支持,允許通過分離應用的業(yè)務邏輯與系統(tǒng)級服務(例如審計(auditing)和事務()管理)進行內聚性的開發(fā)。應用對象只實現(xiàn)它們應該做的——完成業(yè)務邏輯——僅此而已。它們并不負責(甚至是意識)其它的系統(tǒng)級關注點,例如日志或事務支持。

■容器——Spring包含并管理應用對象的配置和生命周期,在這個意義上它是一種容器,你可以配置你的每個bean如何被創(chuàng)建——基于一個可配置原型(prototype),你的bean可以創(chuàng)建一個單獨的實例或者每次需要時都生成一個新的實例——以及它們是如何相互關聯(lián)的。然而,Spring不應該被混同于傳統(tǒng)的重量級的EJB容器,它們經(jīng)常是龐大與笨重的,難以使用。

■框架——Spring可以將簡單的組件配置、組合成為復雜的應用。在Spring中,應用對象被聲明式地組合,典型地是在一個XML文件里。Spring也提供了很多基礎功能(事務管理、持久化框架集成等等),將應用邏輯的開發(fā)留給了你。


所有Spring的這些特征使你能夠編寫更干凈、更可管理、并且更易于測試的代碼。它們也為Spring中的各種模塊提供了基礎支持。

Spring的歷史

   Spring的基礎架構起源于2000年早期,它是Rod Johnson在一些成功的商業(yè)項目中構建的基礎設施。

在2002后期,Rod Johnson發(fā)布了《Expert One-on-One J2EE Design and Development》一書,并隨書提供了一個初步的開發(fā)框架實現(xiàn)——interface21開發(fā)包,interface21就是書中闡述的思想的具體實現(xiàn)。后來,Rod Johnson 在interface21 開發(fā)包的基礎之上,進行了進一步的改造和擴充,使其發(fā)展為一個更加開放、清晰、全面、高效的開發(fā)框架——Spring。

2003年2月Spring框架正式成為一個開源項目,并發(fā)布于SourceForge中。

Spring的使命(Mission Statement)

¨J2EE應該更加容易使用。

¨面向對象的設計比任何實現(xiàn)技術(比如J2EE)都重要。

¨面向接口編程,而不是針對類編程。Spring將使用接口的復雜度降低到零。(面向接口編程有哪些復雜度?)

¨代碼應該易于測試。Spring框架會幫助你,使代碼的測試更加簡單。

¨JavaBean提供了應用程序配置的最好方法。

¨在Java中,已檢查異常(Checked exception)被過度使用??蚣懿粦撈仁鼓悴东@不能恢復的異常。

Spring受到的批判

?Spring不是一個“標準”。Spring不是J2EE規(guī)范的一部分,沒有通過JCP(Java Community Process)的審核認可。

批判來源于EJB的支持者,他們認為EJB是一個標準,是J2EE規(guī)范的一部分。當然,標準最主要的目的是希望在應用服務器之間是可移植的,可是EJB的移植卻并不輕松,不同應用服務器的ejb部署描述文件總是有著差異。而且EJB開發(fā)的類完全依賴于EJB容器。而Spring對其管理的Bean沒有任何形式的侵入,這樣的Bean是普通Java對象(POJO),那么它就遵循Java標準,可以到處移植。


?Spring是“超重量級”的。

Spring涉及的內容確實很多(例如:提供了對jdbc、ORM、遠程訪問等等的支持),但其本質還是Java技術的龐大。Spring只是為了這些技術提供更好的使用方案而已。同時,你可以只選取你需要使用的部分。

如果作為一個整體,這些模塊為你提供了開發(fā)企業(yè)應用所需的一切。但你不必將應用完全基于Spring框架。你可以自由地挑選適合你的應用的模塊而忽略其余的模塊。

就像你所看到的,所有的Spring模塊都是在核心容器之上構建的。容器定義了Bean是如何創(chuàng)建、配置和管理的——更多的Spring細節(jié)。當你配置你的應用時,你會潛在地使用這些類。但是作為一名開發(fā)者,你最可能對影響容器所提供的服務的其它模塊感興趣。這些模塊將會為你提供用于構建應用服務的框架,例如AOP和持久性。

核心容器

   這是Spring框架最基礎的部分,它提供了依賴注入(DependencyInjection)特征來實現(xiàn)容器對Bean的管理。這里最基本的概念是BeanFactory,它是任何Spring應用的核心。BeanFactory是工廠模式的一個實現(xiàn),它使用IoC將應用配置和依賴說明從實際的應用代碼中分離出來。

應用上下文(Context)模塊

   核心模塊的BeanFactory使Spring成為一個容器,而上下文模塊使它成為一個框架。這個模塊擴展了BeanFactory的概念,增加了對國際化(I18N)消息、事件傳播以及驗證的支持。

另外,這個模塊提供了許多企業(yè)服務,例如電子郵件、JNDI訪問、EJB集成、遠程以及時序調度(scheduling)服務。也包括了對模版框架例如Velocity和FreeMarker集成的支持。

Spring的AOP模塊

  Spring在它的AOP模塊中提供了對面向切面編程的豐富支持。這個模塊是在Spring應用中實現(xiàn)切面編程的基礎。為了確保Spring與其它AOP框架的互用性, Spring的AOP支持基于AOP聯(lián)盟定義的API。AOP聯(lián)盟是一個開源項目,它的目標是通過定義一組共同的接口和組件來促進AOP的使用以及不同的AOP實現(xiàn)之間的互用性。通過訪問他們的站點http://aopalliance.sourceforge.net,你可以找到關于AOP聯(lián)盟的更多內容。

Spring的AOP模塊也將元數(shù)據(jù)編程引入了Spring。使用Spring的元數(shù)據(jù)支持,你可以為你的源代碼增加注釋,指示Spring在何處以及如何應用切面函數(shù)。

JDBC抽象和DAO模塊

   使用JDBC經(jīng)常導致大量的重復代碼,取得連接、創(chuàng)建語句、處理結果集,然后關閉連接。Spring的JDBC和DAO模塊抽取了這些重復代碼,因此你可以保持你的數(shù)據(jù)庫訪問代碼干凈簡潔,并且可以防止因關閉數(shù)據(jù)庫資源失敗而引起的問題。

這個模塊還在幾種數(shù)據(jù)庫服務器給出的錯誤消息之上建立了一個有意義的異常層。使你不用再試圖破譯神秘的私有的SQL錯誤消息!

另外,這個模塊還使用了Spring的AOP模塊為Spring應用中的對象提供了事務管理服務。

對象/關系映射集成模塊

   對那些更喜歡使用對象/關系映射工具而不是直接使用JDBC的人,Spring提供了ORM模塊。Spring并不試圖實現(xiàn)它自己的ORM解決方案,而是為幾種流行的ORM框架提供了集成方案,包括Hibernate、JDO和iBATIS SQL映射。Spring的事務管理支持這些ORM框架中的每一個也包括JDBC。

Spring的Web模塊

   Web上下文模塊建立于應用上下文模塊之上,提供了一個適合于Web應用的上下文。另外,這個模塊還提供了一些面向服務支持。例如:實現(xiàn)文件上傳的multipart請求,它也提供了Spring和其它Web框架的集成,比如Struts、WebWork。

Spring的MVC框架

   Spring為構建Web應用提供了一個功能全面的MVC框架。雖然Spring可以很容易地與其它MVC框架集成,例如Struts,但Spring的MVC框架使用IoC對控制邏輯和業(yè)務對象提供了完全的分離。

它也允許你聲明性地將請求參數(shù)綁定到你的業(yè)務對象中,此外,Spring的MVC框架還可以利用Spring的任何其它服務,例如國際化信息與驗證。

總結

   Spring帶來了復雜的J2EE開發(fā)的春天。它的核心是輕量級的IoC容器,它的目標是為J2EE應用提供了全方位的整合框架,在Spring框架下實現(xiàn)多個子框架的組合,這些子框架之間可以彼此獨立,也可以使用其它的框架方案加以代替,Spring希望為企業(yè)應用提供一站式(one-stopshop)的解決方案。