溫馨提示×

溫馨提示×

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

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

JSR通過JavaEE 6依賴注入的示例分析

發(fā)布時間:2021-12-14 10:58:51 來源:億速云 閱讀:133 作者:柒染 欄目:編程語言

這篇文章將為大家詳細(xì)講解有關(guān)JSR通過JavaEE 6依賴注入的示例分析,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

Google Guice和剛剛被VMware收購的SpringSource宣布將合作提出一套標(biāo)準(zhǔn)的用于依賴注入的注解,即JSR-330。但這些注解與JSR-299卻并不一致,隨后引發(fā)了眾多的爭論,不過現(xiàn)在一切都已經(jīng)塵埃落定。

有不少人針對JSR-299與JSR-330的沖突談到了自己的一些看法,列舉如下:

Gavin King:我認(rèn)為引入另一套語義上與299相同的注解完全是個錯誤,而且其嘗試解決的問題也與299大同小異。
Bob Lee:雖然299對于那些小型的Java EE應(yīng)用來說很適合,但其全局配置以及不直接的天性使之很難適應(yīng)于數(shù)百萬代碼行的應(yīng)用,就像Google所開發(fā)的。我們能夠在Guice上輕松支持299風(fēng)格的注解,但卻無法通過299實現(xiàn)Guice的全部功能,因此沒有理由放棄Guice而轉(zhuǎn)向299。就我個人來說,我認(rèn)為你們在299上已經(jīng)進(jìn)行了不少的創(chuàng)新,但卻沒有完全理解用戶代碼是需要維護(hù)的這個事實。

Alex Miller:向JSR 299領(lǐng)域進(jìn)軍是個危險的信號。

Antonio Goncalves:我希望我們不要打響一個新的戰(zhàn)役,就像Java Module(JSR 277)和Modularity Support(JSR 294)之間那樣。

Rickard Öberg說出了反對意見:相對于泛泛的使用@Inject這樣的注解,我們選擇使用能代表目標(biāo)對象范圍的注解,因為什么都是也意味著什么都不是。
 
JSR-330已經(jīng)通過了JSR評審的投票,但眾多投票者都強(qiáng)調(diào)了兩個規(guī)范的和諧相處:

Sun:我們希望該JSR能與JSR-299共同努力以便為SE和EE平臺達(dá)成一個一致、全面的依賴注入標(biāo)準(zhǔn)。這個標(biāo)準(zhǔn)務(wù)必先于該JSR的公共預(yù)覽版發(fā)布前形成。

Red Hat:我們認(rèn)識到該草案是有社區(qū)支持的,因此打算在專家組發(fā)布公共草案時再發(fā)表最終意見。如果該JSR與JSR-299之間能達(dá)成某種一致(這種一致性會為依賴注入定義一種輕量級的模型),那我們會毫不猶豫地投出贊成票。Red Hat承諾會為這種一致性貢獻(xiàn)自己的一份綿薄之力。

Ericsson:我們支持為標(biāo)準(zhǔn)化Java SE的依賴注入所付出的努力,但更想強(qiáng)調(diào)的是保持與JSR 299的一致性對于Java SE和EE都是非常重要的。

◆IBM:我們也認(rèn)為這樣一份描述SE應(yīng)用的依賴注入規(guī)范是很有必要的,然而所提出的注入模式卻與EE平臺中的定義有出入。SE/EE的注入模型必須要形成一個單獨可擴(kuò)展的編程模型:為SE定義一套核心功能并通過EE的功能對其進(jìn)行擴(kuò)展。因此,要是不統(tǒng)一的話,IBM是不會支持JSR 299或是330的。

Oracle:雖然支持該JSR,但Oracle嚴(yán)重關(guān)注該草案的完整性及其與JSR 299的分歧,因為這可能會導(dǎo)致平臺的分裂。因此,我們期望在該JSR的公共預(yù)覽版發(fā)布前能與JSR 299達(dá)成一致。我們相信JSR 250的一個修訂或是維護(hù)版會比較適合發(fā)布依賴注入相關(guān)的注解。最終我們希望這種一致性的努力會讓SE和EE平臺的依賴注入保持一致,形成一個標(biāo)準(zhǔn)化的機(jī)制以滿足各種需求。
 
目前這些規(guī)范之間的沖突已經(jīng)得到解決。JSR-330(面向Java的依賴注入)以及JSR-299(面向Java EE平臺的上下文與依賴注入)已經(jīng)達(dá)成一致了,后者將采取前者的注解,兩者都將成為Java EE6的一部分。

什么是依賴注入

依賴注入就是使類型之間的依賴關(guān)系可配置,也就是在運行時通過配置文件等手段確定類型之間的依賴關(guān)系。而沒有使用依賴注入的時候類型之間的關(guān)系是硬編碼在程序中的。

關(guān)于JSR通過JavaEE 6依賴注入的示例分析就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

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

AI