日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

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

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

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

在我的小項(xiàng)目中,我使用三個(gè)類

public interface UserIf

{

...

}

@Named

public class User implements UserIf

{

...

}

public class Main

{

@Inject

UserIf user;

}

現(xiàn)在,我可以輕松注入U(xiǎn)serIf的另一個(gè)實(shí)現(xiàn).但我也可以做到

public class Main

{

UserIf user = new User();

}

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

UserIf user = new User();

UserIf user = new AnotherUserImpl();

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

赫爾姆森的問候

解決方法:

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

@Inject

@AnotherUser

private User user;

客戶代碼對用戶的實(shí)現(xiàn)一無所知,因此您可以在業(yè)務(wù)方面隨意更改它,而客戶甚至不會(huì)注意到.松散耦合的原理是,使用您的API的客戶端實(shí)際上并不了解實(shí)現(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)容還不錯(cuò),歡迎將生活随笔推薦給好友。