日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java cdi是什么意思_Java EE CDI的真正好处

發(fā)布時間:2025/3/15 java 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java cdi是什么意思_Java EE CDI的真正好处 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我是Java EE的新手,我想知道使用CDI(@ Named,@ Inject)的真正好處是什么.當(dāng)然我在問谷歌.但是我總是得到諸如“松散耦合”和“更好測試”之類的通用答案.但是我認(rèn)為要實現(xiàn)松散耦合,不需要任何框架.

在我的小項目中,我使用三個類

public interface UserIf

{

...

}

@Named

public class User implements UserIf

{

...

}

public class Main

{

@Inject

UserIf user;

}

現(xiàn)在,我可以輕松注入UserIf的另一個實現(xiàn).但我也可以做到

public class Main

{

UserIf user = new User();

}

該體系結(jié)構(gòu)也很容易更改.只需編寫UserIf的另一個實現(xiàn)并更改

UserIf user = new User();

UserIf user = new AnotherUserImpl();

我在這里看不到使用CDI的好處.當(dāng)我考慮一個由一些EJB和WAR組成的更大的EAR項目時,如果某些模塊(EJB,WAR)是松散耦合的,那么也許更容易重用它們.但是據(jù)我所知,如果這些類不在同一jar / war中,則無法使用CDI.那么,使用CDI會獲得真正好處的真正設(shè)置是什么?

赫爾姆森的問候

解決方法:

關(guān)鍵是,如果您需要例如重命名AnotherUserImpl或想要切換到其他實現(xiàn),則不必轉(zhuǎn)到所有使用此impl的類并將其重命名.有了CDI限定詞,您到處都有

@Inject

@AnotherUser

private User user;

客戶代碼對用戶的實現(xiàn)一無所知,因此您可以在業(yè)務(wù)方面隨意更改它,而客戶甚至不會注意到.松散耦合的原理是,使用您的API的客戶端實際上并不了解實現(xiàn),這是在外部配置的(例如CDI Producers或Spring XML配置). CDI還具有其他好處,例如生產(chǎn)者,攔截者,新的交易API,替代品或其他.

標(biāo)簽:dependency-injection,cdi,java

來源: https://codeday.me/bug/20191029/1958759.html

總結(jié)

以上是生活随笔為你收集整理的java cdi是什么意思_Java EE CDI的真正好处的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。