如何進行Spring的概念分析,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
創(chuàng)新互聯(lián)長期為近1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為齊齊哈爾企業(yè)提供專業(yè)的成都做網(wǎng)站、網(wǎng)站建設(shè),齊齊哈爾網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
1.1 Spirng概述
Spring的締造者:Rod Johnson 悉尼大學(xué)計算機學(xué)士學(xué)位,同時還是音樂學(xué)博士,也許是音樂的細(xì)胞賦予了它程序設(shè)計美學(xué)的靈感,讓他成就了Spring的簡約與優(yōu)雅。
由藝術(shù)美學(xué)轉(zhuǎn)變到程序美學(xué),不止有Spring的締造者,還有前端的三大主流框架之一Vue的締造者(Evan You),Evan You獲得Design & Technology藝術(shù)碩士學(xué)位,可能正是因為這種追求設(shè)計美感的精神,才促進了Vue的誕生。
2004年3月24日,發(fā)布1.0版本。
1.2 關(guān)于SpringSource
Rod Johnson在Spring 1.0發(fā)布的時候,就和他的骨干團隊成立了SpringSource公司,以Spring的開源框架為依托,成功開展了很多代表不同技術(shù)領(lǐng)域的子項目。
2007年5月,SpringSource吸引Benchmark Capital風(fēng)險投資商。
2008年,SpringSource收購G2One(Groovy編程語言),Grails Web,Covalent(為Apache的Tomcat應(yīng)用服務(wù)器提供支持的公司)。
2009年,SpringSource收購了開源系統(tǒng)檢測廠商Hyperic。Hyperic的核心產(chǎn)品是Hyperic HQ,該產(chǎn)品提供了硬件和操作系統(tǒng)、虛擬機、數(shù)據(jù)庫及應(yīng)用服務(wù)器的可用性檢測。
2009年8月11日,VMware收購SpringSource公司。
2012年,Spring 創(chuàng)始人Rod 離開SpringSource和VMware。
2013年,SpringSource團隊發(fā)布了Spring Framework 4.0版本。
1.3 Spring 帶給我們什么
EJB的復(fù)雜難學(xué)習(xí),難于測試,因此易于上手,易于開發(fā),易于測試的框架應(yīng)運而生,Spring因此就誕生,取其了EJB的精華。
Spring帶給我們的好處:
1. 方便解耦,簡化開發(fā),提供了IoC容器。
2. AOP編程的支持。
3. 聲明式事務(wù)的支持。
4. 方便程序的測試。
5. 方便集成各種優(yōu)秀框架。
6. 降低Java EE API的使用難度。
7. Spring源碼是經(jīng)典的學(xué)習(xí)案例。
1.4 Spring 體系結(jié)構(gòu)
IoC和AOP是Spring所依賴的根本。主要由以下五個部分組成:
1. IoC
Spring核心功能實現(xiàn)IoC的功能,它將類與類之間的依賴從代碼中脫離出來,用配置的方式進行依賴關(guān)系描述,由IoC容器負(fù)責(zé)依賴類之間的創(chuàng)建、拼接、管理、獲取等工作。
BeanFactory接口是Spring框架的核心接口;
Context模塊構(gòu)建于核心模塊之上,擴展了BeanFactory的功能;例如,添加了i18n國際化、Bean生命周期控制、框架事件體系、資源加載透明化等多項功能。
ApplicationContext是Context模塊的核心接口。
2. AOP
AOP是繼OOP之后,對編程設(shè)計思想影響極大的技術(shù)之一。Java 5.0引入java.lang.instrument,允許在JVM啟動時啟用一個代理類,通過該代理類在運行期修改類的字節(jié)碼,改變一個類的功能,從而實現(xiàn)AOP的功能。
3. 數(shù)據(jù)訪問與集成
Spring站在DAO的抽象層面,建立了一套面向DAO層統(tǒng)一的異常體系,同時將各種訪問數(shù)據(jù)的檢查型異常轉(zhuǎn)換為非檢查型異常,為整合各種持久層框架提供基礎(chǔ)。這樣,Spring就建立起了和數(shù)據(jù)形式及訪問技術(shù)無關(guān)的統(tǒng)一的DAO層,借助AOP技術(shù),Spring提供了聲明式事務(wù)的功能。
4. Web及遠(yuǎn)程操作
該模塊建立在Application Context模塊之上,提供了Web應(yīng)用的各種工具類,如通過Listener或Servlet初始化Spring容器,將Spring容器注冊到Web容器中。還提供了面向Web功能,例如FreeMarker,Velocity,還可以整合Struts、WebWork等MVC框架。
5. Web及遠(yuǎn)程訪問
Spring自己提供了一個完整的類似于Struts的MVC框架,稱為SpringMVC,如果不希望使用SpringMVC,那么Spring對Struts、WebWork等MVC框架的整合,可以可以帶來方便,相對于Servlet的MVC,Spring在簡化Portlet的開發(fā)上也做了很多工作。
6. WebSocket
WebSocket提供了一個在Web應(yīng)用中高效、雙向通信,需要考慮到客戶端和服務(wù)器之間的高頻和低時延消息交換,一般有在線交易、游戲、協(xié)作、數(shù)據(jù)可視化等,此外,Spring在遠(yuǎn)程訪問及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表達(dá)式、Groovy DSL定義Bean、核心容器增強、Web框架增強、WebSocket模塊的實現(xiàn)、測試增強等功能,全面支持REST風(fēng)格的開發(fā)。
1.6.1 全面支持Java 8.0
1. Java 8.0 新特性
1)Java 8.0 的 Lambda表達(dá)式
2)Java 8.0 的時間與日期API
3)重復(fù)注解支持
4)空指針終結(jié)者:Optional<>,有些對象永遠(yuǎn)都不會為空,作非空判斷有些多余
1.6.2 核心容器的增強
Spring 4.0支持泛型依賴注入
1. @Autowired
portected BaseDao
2. @Autowired
private Map
3. @Lazy 延時注入
4. @Conditional : 類似于@Profile,一般在多個環(huán)境進行配置切換(開發(fā),生產(chǎn)環(huán)境)
5. CGLIB代理類增強:在Spring 4.0中,基于CGLIB的代理類不在要求類必須有空參構(gòu)造器
1.6.3 支持用Groovy 定義Bean
Groovy有諸多不足,錯誤提示不友好,學(xué)習(xí)曲線高
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ā)處理支持,增強持久化處理
看完上述內(nèi)容,你們掌握如何進行Spring的概念分析的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!