您好,登錄后才能下訂單哦!
如何進行Spring的概念分析,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
1.1 Spirng概述
Spring的締造者:Rod Johnson 悉尼大學計算機學士學位,同時還是音樂學博士,也許是音樂的細胞賦予了它程序設計美學的靈感,讓他成就了Spring的簡約與優雅。
由藝術美學轉變到程序美學,不止有Spring的締造者,還有前端的三大主流框架之一Vue的締造者(Evan You),Evan You獲得Design & Technology藝術碩士學位,可能正是因為這種追求設計美感的精神,才促進了Vue的誕生。
2004年3月24日,發布1.0版本。
1.2 關于SpringSource
Rod Johnson在Spring 1.0發布的時候,就和他的骨干團隊成立了SpringSource公司,以Spring的開源框架為依托,成功開展了很多代表不同技術領域的子項目。
2007年5月,SpringSource吸引Benchmark Capital風險投資商。
2008年,SpringSource收購G2One(Groovy編程語言),Grails Web,Covalent(為Apache的Tomcat應用服務器提供支持的公司)。
2009年,SpringSource收購了開源系統檢測廠商Hyperic。Hyperic的核心產品是Hyperic HQ,該產品提供了硬件和操作系統、虛擬機、數據庫及應用服務器的可用性檢測。
2009年8月11日,VMware收購SpringSource公司。
2012年,Spring 創始人Rod 離開SpringSource和VMware。
2013年,SpringSource團隊發布了Spring Framework 4.0版本。
1.3 Spring 帶給我們什么
EJB的復雜難學習,難于測試,因此易于上手,易于開發,易于測試的框架應運而生,Spring因此就誕生,取其了EJB的精華。
Spring帶給我們的好處:
1. 方便解耦,簡化開發,提供了IoC容器。
2. AOP編程的支持。
3. 聲明式事務的支持。
4. 方便程序的測試。
5. 方便集成各種優秀框架。
6. 降低Java EE API的使用難度。
7. Spring源碼是經典的學習案例。
1.4 Spring 體系結構
IoC和AOP是Spring所依賴的根本。主要由以下五個部分組成:
1. IoC
Spring核心功能實現IoC的功能,它將類與類之間的依賴從代碼中脫離出來,用配置的方式進行依賴關系描述,由IoC容器負責依賴類之間的創建、拼接、管理、獲取等工作。
BeanFactory接口是Spring框架的核心接口;
Context模塊構建于核心模塊之上,擴展了BeanFactory的功能;例如,添加了i18n國際化、Bean生命周期控制、框架事件體系、資源加載透明化等多項功能。
ApplicationContext是Context模塊的核心接口。
2. AOP
AOP是繼OOP之后,對編程設計思想影響極大的技術之一。Java 5.0引入java.lang.instrument,允許在JVM啟動時啟用一個代理類,通過該代理類在運行期修改類的字節碼,改變一個類的功能,從而實現AOP的功能。
3. 數據訪問與集成
Spring站在DAO的抽象層面,建立了一套面向DAO層統一的異常體系,同時將各種訪問數據的檢查型異常轉換為非檢查型異常,為整合各種持久層框架提供基礎。這樣,Spring就建立起了和數據形式及訪問技術無關的統一的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的開發上也做了很多工作。
6. WebSocket
WebSocket提供了一個在Web應用中高效、雙向通信,需要考慮到客戶端和服務器之間的高頻和低時延消息交換,一般有在線交易、游戲、協作、數據可視化等,此外,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模塊的實現、測試增強等功能,全面支持REST風格的開發。
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,一般在多個環境進行配置切換(開發,生產環境)
5. CGLIB代理類增強:在Spring 4.0中,基于CGLIB的代理類不在要求類必須有空參構造器
1.6.3 支持用Groovy 定義Bean
Groovy有諸多不足,錯誤提示不友好,學習曲線高
1.6.4 Web的增強
@RestController,方便REST開發,同時添加了一個AsyncRestTemplate,支持REST客戶端的異步無阻塞請求
1.6.5 支持WebSocket
雙向通信(在線交易,游戲,協作,數據可視化),瀏覽器IE<10不支持
1.6.6 測試的增強
@Sql @AbstractTransactionalJUnit4SpringContextTests
1.6.7 其他
JCache支持,動態語言支持,多線程并發處理支持,增強持久化處理
看完上述內容,你們掌握如何進行Spring的概念分析的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。