淺析Spring4新特性概述
Spring 4.1目前已經(jīng)發(fā)布RC1版本,而GA版本預(yù)計(jì)在14年9月中旬發(fā)布;其中有部分內(nèi)容直接借鑒自Spring Boot,而Spring Boot從目前趨勢(shì)來(lái)看已經(jīng)是Spring的頂級(jí)項(xiàng)目;另外也提供了頁(yè)面自動(dòng)化測(cè)試框架Spring MVC Test HtmlUnit,和Spring MVC Test一樣先是獨(dú)立項(xiàng)目,如果發(fā)展態(tài)勢(shì)很好,會(huì)最終合并到Spring Framework中。
從目前來(lái)看Spring 4.1并沒(méi)有特別吸引眼球的地方,主要還是增強(qiáng)和一些依賴(lài)的版本升級(jí)。主要改進(jìn)如下:
1、核心部分基本上無(wú)變化,提供了DirectFieldAccessor用于直接字段訪(fǎng)問(wèn)、yaml配置、SpEL的字節(jié)碼編譯化、BackOff退避算法的基本實(shí)現(xiàn)、Base64Utils、SmartInitializingSingleton等;
2、在任務(wù)調(diào)度和事件機(jī)制上加入了異常處理部分;
3、cache部分加入jcache的集成、類(lèi)級(jí)別的@CacheConfig的支持、CacheResolver;
4、mvc部分提供了一些視圖解析器的mvc標(biāo)簽實(shí)現(xiàn)簡(jiǎn)化配置、提供了GroovyWebApplicationContext用于Groovy web集成、提供了Gson、protobuf的HttpMessageConverter、靜態(tài)資源處理方面添加了resolver和transformer、提供了對(duì)groovy-templates模板的支持、JSONP的支持、對(duì)Jackson的@JsonView的支持等;
5、提供了頁(yè)面自動(dòng)化測(cè)試框架Spring MVC Test HtmlUnit;
6、test部分提供了更便利的@sql標(biāo)簽來(lái)執(zhí)行測(cè)試腳本的初始化、MockRestServiceServer對(duì)AyncRestTemplate支持、MockMvcConfigurer來(lái)全局配置MockMvc;
7、提供了對(duì)Java 8 Optional的支持(ObjectToOptionalConverter實(shí)現(xiàn);可以在MVC中如@RequestParam等注解的綁定)、從Spring 4.1起Ehcache支持需要EhCache 2.5或更高版本、兼容Quartz 2.1.4、支持javax.annotation.Priority(等價(jià)于@Order)、JMS API的增強(qiáng)、SpringJUnit4ClassRunner需要 JUnit 4.9或更高版本支持。
從目前發(fā)展來(lái)看Spring把重點(diǎn)放在了Spring Boot上,另一方面Spring體系太龐大,要尋找和添加依賴(lài),及選擇版本特別麻煩,而且容易產(chǎn)生版本沖突等,因此又誕生了Spring IO Platform,如果用過(guò)maven的話(huà),相當(dāng)于給你很多默認(rèn)依賴(lài),然后需要的時(shí)候直接添加即可,無(wú)需指定版本。
從如上可以看出,吸引人的新特性很少,另外目前還不穩(wěn)定,API異變,功能有BUG,如果沒(méi)有把控能力,不建議把新特性用于新項(xiàng)目,后續(xù)部分我會(huì)按照如下幾部分講解Spring4.1新特性:
Spring核心部分及其他
Spring緩存框架增強(qiáng)
異步調(diào)用和事件機(jī)制的異常處理
數(shù)據(jù)庫(kù)集成測(cè)試腳本初始化
Spring MVC增強(qiáng)
頁(yè)面自動(dòng)化測(cè)試框架Spring MVC Test HtmlUnit簡(jiǎn)介
靜態(tài)資源處理增強(qiáng)
目前給我的印象是Spring Framework已經(jīng)非常龐大,基本使用還是比較簡(jiǎn)單,而且如果深入下去基本上我們需要的功能都可以進(jìn)行擴(kuò)展,這也是最佩服它的一點(diǎn),目前給我最不好的就是Java Config和XML Config都支持,會(huì)給人一種混亂的感覺(jué);其實(shí)最好把這種配置也單獨(dú)提取到一個(gè)項(xiàng)目中。因?yàn)槲以跍y(cè)試Spring 4.1時(shí)遇到過(guò)在Java Config下好用,而XML Config下實(shí)現(xiàn)錯(cuò)誤。從目前發(fā)展態(tài)勢(shì)來(lái)看,
1、推廣它們的Groovy;
2、微服務(wù);
3、周邊的各種生態(tài)集成;
4、目前最需要解決的就是簡(jiǎn)化使用;功能太多造成學(xué)習(xí)成本也高了,會(huì)嚇跑一些人。用好了Spring生態(tài)系統(tǒng),工作起來(lái)真的是很得心應(yīng)手。
依賴(lài):
使用4.1.0.BUILD-SNAPSHOT,請(qǐng)使用Spring官方maven倉(cāng)庫(kù)下載依賴(lài)。
Java代碼
<repositories>
<repository>
<id>spring-milestone</id>
<url>https://repo.spring.io/libs-milestone</url>
</repository>
<repository>
<snapshots><enabled>true</enabled></snapshots>
<id>repository.spring.snapshot</id>
<name>Spring Snapshot Repository</name>
<url>http://repo.spring.io/snapshot</url>
</repository>
</repositories>
總結(jié)
以上所述是小編給大家介紹的Spring4新特性概述,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
解析Hibernate + MySQL中文亂碼問(wèn)題
如果持久化的類(lèi)中有包括了漢字的String對(duì)象,那么對(duì)應(yīng)到數(shù)據(jù)庫(kù)中漢字的部分就會(huì)是亂碼。這主要是由于MySQL數(shù)據(jù)表的字符集與我們當(dāng)前使用的本地字符集不相同造成的2013-07-07
詳解在Spring3中使用注解(@Scheduled)創(chuàng)建計(jì)劃任務(wù)
本篇文章主要介紹了詳解在Spring3中使用注解(@Scheduled)創(chuàng)建計(jì)劃任務(wù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03
java swing中實(shí)現(xiàn)拖拽功能示例
這篇文章主要介紹了java swing中實(shí)現(xiàn)拖拽功能示例,需要的朋友可以參考下2014-04-04
Java注解的Retention和RetentionPolicy實(shí)例分析
這篇文章主要介紹了Java注解的Retention和RetentionPolicy,結(jié)合實(shí)例形式分析了Java注解Retention和RetentionPolicy的基本功能及使用方法,需要的朋友可以參考下2019-09-09
Java中管理資源的引用隊(duì)列相關(guān)原理解析
這篇文章主要介紹了Java中管理資源的引用隊(duì)列相關(guān)原理解析,涉及到Java的垃圾回收機(jī)制方面的知識(shí),需要的朋友可以參考下2015-12-12
淺談hashmap為什么查詢(xún)時(shí)間復(fù)雜度為O(1)
這篇文章主要介紹了hashmap為什么查詢(xún)時(shí)間復(fù)雜度為O(1),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
Java Web項(xiàng)目中Spring框架處理JSON格式數(shù)據(jù)的方法
Spring MVC是個(gè)靈活的框架,返回JSON數(shù)據(jù)的也有很多五花八門(mén)的方式,這里我們來(lái)整理一個(gè)最簡(jiǎn)單的Java Web項(xiàng)目中Spring框架處理JSON格式數(shù)據(jù)的方法:2016-05-05
java實(shí)現(xiàn)畫(huà)圖板上畫(huà)一條直線(xiàn)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)畫(huà)圖板上畫(huà)一條直線(xiàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08
Java擴(kuò)展庫(kù)RxJava的基本結(jié)構(gòu)與適用場(chǎng)景小結(jié)
RxJava(GitHub: https://github.com/ReactiveX/RxJava)能夠幫助Java進(jìn)行異步與事務(wù)驅(qū)動(dòng)的程序編寫(xiě),這里我們來(lái)作一個(gè)Java擴(kuò)展庫(kù)RxJava的基本結(jié)構(gòu)與適用場(chǎng)景小結(jié),剛接觸RxJava的同學(xué)不妨看一下^^2016-06-06

