成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Spring2.0新特性點(diǎn)評(píng)

開發(fā) 后端
本文向您介紹Spring2.0新特性,包括XML配置、request和session范圍的bean 、集成AspectJ、JPA支持等Spring2.0新特性。

Spring2.0的發(fā)布恐怕算得上近年Java社區(qū)的一件大事了。在Spring2.0發(fā)布附帶的文檔里面對(duì)Spring2.0新特性做了概要的介紹,2.0的新特性是自然是我們最關(guān)注的方面:

Spring2.0新特性一、Spring的XML配置引入XML Schema語法簡化配置

在Spring1.x系列中,bean的配置文件使用DTD,沒有namespace的分隔。2.0的一個(gè)非常大的改進(jìn)是引入了XML Schema的namespace,因而可以將bean的配置文件做大幅度的簡化。這些簡化包括了對(duì)bean屬性的各種簡化,AOP配置的簡化,事務(wù)配置的簡化,JNDI配置的簡化等方面。當(dāng)然,在簡化配置的同時(shí),新的XML Schema實(shí)際上引入了更多的XML語法,因此使用一個(gè)支持XML Schema的XML Editor就顯得非常必要了,例如Eclipse WTP就可以提供Schema的語法自動(dòng)提示和校驗(yàn)功能。

Spring1.x的bean配置文件逐漸復(fù)雜煩瑣化,是Spring歷來被人所垢病的主要問題之一。在Spring2.0里面XML Schema語法的配置可以在相當(dāng)程度上降低配置文件的復(fù)雜程度和煩瑣程度,可以視為Spring的重大改進(jìn)之一。但是我們也必須看到XML Schema并沒有從根源上面解決XML配置復(fù)雜的問題,而只是減輕。

將所有的bean之間的依賴關(guān)系,組裝關(guān)系統(tǒng)統(tǒng)使用XML來描述,本身就會(huì)導(dǎo)致XML閱讀和修改一定的困難。并且用XML配置本身無法直接進(jìn)行單元測試來驗(yàn)證依賴關(guān)系。因此,當(dāng)bean之間關(guān)系越復(fù)雜的時(shí)候,XML配置文件本身的維護(hù)也是一個(gè)負(fù)擔(dān)。

我個(gè)人比較期待未來的Spring能夠使用腳本語言來編寫和組裝bean之間的關(guān)系,這樣組裝腳本本身也是可測試的,而且腳本的描述能力要遠(yuǎn)遠(yuǎn)好于XML配置文件,同時(shí)編寫和維護(hù)起來也比XML輕松。

Spring2.0新特性二、提供了request和session范圍的bean

引入request scope和session scope的bean,我感覺是把雙刃劍。對(duì)于普通的Java Web框架應(yīng)用來說,和Servlet容器相關(guān)的操作應(yīng)該限制在Web層,對(duì)于業(yè)務(wù)層來說,不應(yīng)該涉及request和session的scope,否則業(yè)務(wù)層代碼無法脫離Servlet容器進(jìn)行單元測試。對(duì)于使用Webwork/Struts框架的用戶來說,恐怕不太會(huì)使用該特性,另外根據(jù)我的理解,也許request/session scope的bean也是為了提供給Spring MVC的Controller使用的。

除此之外,對(duì)于AJAX Web Service調(diào)用來說,這一特性反而是很有用處的。對(duì)于這種應(yīng)用場景,JS通過AJAX調(diào)用,拋開Web層框架,直接訪問業(yè)務(wù)層bean,這個(gè)時(shí)候就需要提供request/session scope的bean了。

Spring2.0新特性三、集成AspectJ,可以管理容器外對(duì)象,提供了領(lǐng)域模型的依賴注入

通常由Hibernate管理的持久化對(duì)象PO,并不是由Spring容器初始化的,往往是用戶自己new出來,或者通過find,load方法創(chuàng)建的,其結(jié)果就是Spring容器無法對(duì)這種容器外創(chuàng)建的對(duì)象進(jìn)行bean依賴關(guān)系注入。

在Spring2.0中,可以使用AspectJ對(duì)領(lǐng)域模型進(jìn)行靜態(tài)織入,這樣當(dāng)該領(lǐng)域模型在容器外被創(chuàng)建的時(shí)候,會(huì)產(chǎn)生對(duì)容器的回調(diào),進(jìn)行依賴關(guān)系的注入。

Spring2.0提供的這一特性,確保了Martin Folwer的Rich Domain Object的可行性,這一特性的提供恐怕會(huì)對(duì)未來很多Java系統(tǒng)的設(shè)計(jì)產(chǎn)生相當(dāng)深遠(yuǎn)的影響。

其實(shí)針對(duì)Rich Domain Object更進(jìn)一步,如果將DAO功能作為Domain Object的抽象父類,那么持久化對(duì)象PO就會(huì)集PO,DAO,Service對(duì)象于一身,整個(gè)業(yè)務(wù)層,持久層完全合并為一個(gè)對(duì)象,通過這種方式進(jìn)行框架簡化得到的結(jié)果就是,高度類似于ruby on rails的full-stack的MVC框架。

Spring2.0新特性四、JPA支持

這一點(diǎn)其實(shí)沒有什么可點(diǎn)評(píng)的,提供JPA支持本來就是理所應(yīng)當(dāng)之事。

Spring2.0新特性五、JDBC的NamedParameterJdbcTemplate

NamedParameterJdbcTemplate我認(rèn)為意義非凡,為JDBC查詢提供了帶命名參數(shù)的占位符,而不止是JDBC自己的“?”,這樣使用JDBC的時(shí)候,也可以很容易的構(gòu)造出來帶占位符的動(dòng)態(tài)條件查詢,而不是參數(shù)值帶入方式的拼接SQL字符串了。


Spring2.0新特性六、Spring Web MVC功能的大幅度擴(kuò)充

看的出來,在Spring2.0里面 Web MVC功能大幅度擴(kuò)充,過去不提供的UI Taglib也終于提供了,配置文件也進(jìn)行了必要的簡化。雖然Spring MVC從框架設(shè)計(jì)角度來說遠(yuǎn)遠(yuǎn)不如Webwork那么有創(chuàng)意,但是也是一步一個(gè)腳印的改進(jìn),再配合上各種外圍框架例如Spring Webflow等的支持,可以預(yù)見Spring MVC會(huì)成長為Webwork的勁敵。

Spring2.0新特性七、支持動(dòng)態(tài)語言ruby,groovy,beanshell

動(dòng)態(tài)語言支持目前看來還比較簡單,不夠強(qiáng)大,但是表明了Spring的一個(gè)態(tài)度,其實(shí)我個(gè)人希望Spring能夠加強(qiáng)這方面支持,甚至大膽一點(diǎn),提供用動(dòng)態(tài)腳本語言編寫的bean組裝配置。

Spring2.0新特性八、異步JMS支持,JMX支持,JCA支持的功能完善

Spring2.0自身提供了兩類簡單的JMS Containter,此外還提供了外部JMS Server的接口,另外JMX功能的支持,JCA功能的支持都在進(jìn)一步的完善過程中。

Spring2.0在這幾個(gè)方面的功能支持不是那么引入注目,畢竟普通Java Web應(yīng)用很少使用這些方面。但是Spring提供這些功能的完善支持意義卻很深遠(yuǎn),因?yàn)檫@些功能都是J2EE規(guī)范所要求提供的功能,也是傳統(tǒng)應(yīng)用服務(wù)器廠商相對(duì)比Java開源框架的傳統(tǒng)優(yōu)勢項(xiàng)目。一旦Spring2.0對(duì)這些功能提供了完善的支持,那么將傳統(tǒng)的Java企業(yè)應(yīng)用完全遷移到Spring框架上面的技術(shù)障礙就一掃而空了。

因此Spring是一個(gè)野心很大的框架,從現(xiàn)在狀況來看,Spring可以說是Java開源框架之集大成者,從未來來看,Spring將提供J2EE廠商所能夠提供的所有必要的功能,最終Spring將有可能取J2EE規(guī)范而代之,成為Java企業(yè)開發(fā)的事實(shí)平臺(tái)和事實(shí)標(biāo)準(zhǔn)。

總體來說,Spring2.0將向未來的宏大目標(biāo)又邁進(jìn)了一大步。不過對(duì)于我等普通Java Web項(xiàng)目的開發(fā)需求來說,2.0的新特性也沒有特別需要的。

 

【編輯推薦】

  1. Spring+JPA,下一個(gè)人氣組合?
  2. 實(shí)例詳解Spring JDBC事務(wù)管理
  3. 選擇EJB3.0,不再需要Spring+Hibernate
  4. Spring 3.0 M3發(fā)布 強(qiáng)化對(duì)標(biāo)注的支持
  5. 實(shí)例說明如何集成Spring和Struts
責(zé)任編輯:佚名 來源: Javaeye
相關(guān)推薦

2009-06-18 15:40:07

Spring Batc

2018-05-30 15:10:24

Spring BootList類型

2009-06-18 13:44:05

Spring2.0spring2.5

2009-06-19 13:12:05

Spring2.0Spring2.0.7

2018-06-06 14:30:38

Spring BootApplication事件

2012-03-14 12:29:55

JavaPlay Framwo

2013-02-25 14:02:07

RubyWeb

2009-07-30 14:55:43

ASP.NET 2.0

2009-06-24 09:22:04

Spring2.5新特

2009-11-04 14:17:34

ADO.NET 2.0

2011-09-30 14:15:10

Sencha ToucSencha Touc

2013-02-26 09:36:57

RubyRuby 2.0

2012-07-02 10:43:49

JVMGroovyJava

2009-06-19 12:53:56

Spring 2.0

2015-06-23 15:48:41

Swift 2.0iOS9

2009-07-03 17:40:35

JSP2.0

2009-08-18 09:17:01

JavaScript2

2021-07-08 18:10:03

2023-12-02 08:55:18

Paru 2.0

2010-09-03 08:47:51

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 91免费在线视频 | 亚洲美女av网站 | 日干夜干 | 成人免费观看视频 | 91社区在线观看高清 | 蜜桃视频一区二区三区 | 国产一区二区 | 国产精彩视频 | 美女黄视频网站 | 91久久婷婷 | 一区二区av | 91大神新作在线观看 | 国产欧美精品 | 精品亚洲一区二区三区 | 亚洲精品不卡 | 日韩a | 欧美久久精品一级黑人c片 91免费在线视频 | 91天堂| 久久久久久国产精品久久 | 国产一级免费在线观看 | 亚洲精品一区久久久久久 | 久久久久久久久久久久91 | 久久久看 | 婷婷桃色网 | www.中文字幕.com | 欧美日韩国产精品一区 | 一区二区三区免费在线观看 | 日日夜夜影院 | 综合精品久久久 | 日韩久久久久久 | 国产欧美日韩在线一区 | 性欧美hd| 狠狠躁天天躁夜夜躁婷婷老牛影视 | 羞羞视频网站免费观看 | 色屁屁在线观看 | 中文字幕日本一区二区 | 色本道 | 精品欧美一区二区三区久久久 | 蜜桃在线一区二区三区 | 伊人av在线播放 | 91精品国产综合久久婷婷香蕉 |