溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行Spring的概念分析

發(fā)布時間:2021-12-02 16:57:55 來源:億速云 閱讀:118 作者:柒染 欄目:大數(shù)據(jù)

如何進行Spring的概念分析,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

1.1  Spirng概述

       Spring的締造者:Rod Johnson 悉尼大學計算機學士學位,同時還是音樂學博士,也許是音樂的細胞賦予了它程序設計美學的靈感,讓他成就了Spring的簡約與優(yōu)雅。

       由藝術美學轉變到程序美學,不止有Spring的締造者,還有前端的三大主流框架之一Vue的締造者(Evan You),Evan You獲得Design & Technology藝術碩士學位,可能正是因為這種追求設計美感的精神,才促進了Vue的誕生。

       2004年3月24日,發(fā)布1.0版本。

1.2  關于SpringSource

      Rod Johnson在Spring 1.0發(fā)布的時候,就和他的骨干團隊成立了SpringSource公司,以Spring的開源框架為依托,成功開展了很多代表不同技術領域的子項目。

       2007年5月,SpringSource吸引Benchmark Capital風險投資商。

2008年,SpringSource收購G2One(Groovy編程語言),Grails Web,Covalent(為Apache的Tomcat應用服務器提供支持的公司)。

      2009年,SpringSource收購了開源系統(tǒng)檢測廠商Hyperic。Hyperic的核心產(chǎn)品是Hyperic HQ,該產(chǎn)品提供了硬件和操作系統(tǒng)、虛擬機、數(shù)據(jù)庫及應用服務器的可用性檢測。

       2009年8月11日,VMware收購SpringSource公司。

       2012年,Spring 創(chuàng)始人Rod 離開SpringSource和VMware。

       2013年,SpringSource團隊發(fā)布了Spring Framework 4.0版本。

1.3  Spring 帶給我們什么

       EJB的復雜難學習,難于測試,因此易于上手,易于開發(fā),易于測試的框架應運而生,Spring因此就誕生,取其了EJB的精華。

Spring帶給我們的好處:

1. 方便解耦,簡化開發(fā),提供了IoC容器。

2. AOP編程的支持。

3. 聲明式事務的支持。

4. 方便程序的測試。

5. 方便集成各種優(yōu)秀框架。

6. 降低Java EE API的使用難度。

7. Spring源碼是經(jīng)典的學習案例。

1.4  Spring 體系結構

IoC和AOP是Spring所依賴的根本。主要由以下五個部分組成:

如何進行Spring的概念分析

1. IoC

      Spring核心功能實現(xiàn)IoC的功能,它將類與類之間的依賴從代碼中脫離出來,用配置的方式進行依賴關系描述,由IoC容器負責依賴類之間的創(chuàng)建、拼接、管理、獲取等工作。

      BeanFactory接口是Spring框架的核心接口;

     Context模塊構建于核心模塊之上,擴展了BeanFactory的功能;例如,添加了i18n國際化、Bean生命周期控制、框架事件體系、資源加載透明化等多項功能。

      ApplicationContext是Context模塊的核心接口。

2. AOP

      AOP是繼OOP之后,對編程設計思想影響極大的技術之一。Java 5.0引入java.lang.instrument,允許在JVM啟動時啟用一個代理類,通過該代理類在運行期修改類的字節(jié)碼,改變一個類的功能,從而實現(xiàn)AOP的功能。

3. 數(shù)據(jù)訪問與集成 

      Spring站在DAO的抽象層面,建立了一套面向DAO層統(tǒng)一的異常體系,同時將各種訪問數(shù)據(jù)的檢查型異常轉換為非檢查型異常,為整合各種持久層框架提供基礎。這樣,Spring就建立起了和數(shù)據(jù)形式及訪問技術無關的統(tǒng)一的DAO層,借助AOP技術,Spring提供了聲明式事務的功能。

4. Web及遠程操作

      該模塊建立在Application Context模塊之上,提供了Web應用的各種工具類,如通過Listener或Servlet初始化Spring容器,將Spring容器注冊到Web容器中。還提供了面向Web功能,例如FreeMarker,Velocity,還可以整合Struts、WebWork等MVC框架。

5. Web及遠程訪問

    Spring自己提供了一個完整的類似于Struts的MVC框架,稱為SpringMVC,如果不希望使用SpringMVC,那么Spring對Struts、WebWork等MVC框架的整合,可以可以帶來方便,相對于Servlet的MVC,Spring在簡化Portlet的開發(fā)上也做了很多工作。

6. WebSocket

      WebSocket提供了一個在Web應用中高效、雙向通信,需要考慮到客戶端和服務器之間的高頻和低時延消息交換,一般有在線交易、游戲、協(xié)作、數(shù)據(jù)可視化等,此外,Spring在遠程訪問及Web Service上提供了很多著名框架的整合。

1.5  Spring 對Java版本的要求

       Spring4.0 基于 Java 6.0,全面支持Java 8.0。運行Spring 4.0 必須使用Java 6.0以上的版本,推薦使用Java 8.0及以上版本,如果要編譯Spring 4.0,則必須使用Java 8.0.

1.6  Spring 4.0新特性

      全面支持Java SE 8 、Java EE 7,而且向下兼容到Java SE 6 / Java EE 6,并移除過時的類,添加如泛型依賴注入、Lambda表達式、Groovy DSL定義Bean、核心容器增強、Web框架增強、WebSocket模塊的實現(xiàn)、測試增強等功能,全面支持REST風格的開發(fā)。

1.6.1  全面支持Java 8.0

1. Java 8.0 新特性

1)Java 8.0 的 Lambda表達式

2)Java 8.0 的時間與日期API

3)重復注解支持

4)空指針終結者:Optional<>,有些對象永遠都不會為空,作非空判斷有些多余

1.6.2  核心容器的增強

Spring 4.0支持泛型依賴注入

1. @Autowired

portected BaseDao<M> dao;

2. @Autowired

private Map<String, BaseService> map;

3.  @Lazy 延時注入

4.  @Conditional : 類似于@Profile,一般在多個環(huán)境進行配置切換(開發(fā),生產(chǎn)環(huán)境)

5.  CGLIB代理類增強:在Spring 4.0中,基于CGLIB的代理類不在要求類必須有空參構造器

1.6.3  支持用Groovy 定義Bean

Groovy有諸多不足,錯誤提示不友好,學習曲線高

1.6.4  Web的增強

@RestController,方便REST開發(fā),同時添加了一個AsyncRestTemplate,支持REST客戶端的異步無阻塞請求

1.6.5  支持WebSocket

雙向通信(在線交易,游戲,協(xié)作,數(shù)據(jù)可視化),瀏覽器IE<10不支持

1.6.6  測試的增強

@Sql @AbstractTransactionalJUnit4SpringContextTests

1.6.7  其他

JCache支持,動態(tài)語言支持,多線程并發(fā)處理支持,增強持久化處理

看完上述內容,你們掌握如何進行Spring的概念分析的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI