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

歡迎訪問 生活随笔!

生活随笔

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

java

6. 以下耦合度中最松散的耦合是_Spring Java中的依赖注入,它是如何工作的?- 知识铺...

發(fā)布時間:2025/3/20 java 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 6. 以下耦合度中最松散的耦合是_Spring Java中的依赖注入,它是如何工作的?- 知识铺... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

知識鋪: 致力于打造輕知識點(diǎn),持續(xù)更新每次的知識點(diǎn)較少,閱讀不累。不占太多時間,不停地來喚醒記憶深處的知識點(diǎn)。

一、Spring 框架 POJO

Spring Framework是一個開源的應(yīng)用程序框架和控件容器的反轉(zhuǎn)。簡單的理解,它是一個集成了各種Java技術(shù)或API的框架,這使得它可以用簡單的POJO來實(shí)現(xiàn)它。“什么是POJO?”,POJO是一個普通的Java對象,可能有setter和getter字段,可能會覆蓋Object或interface中的某些方法,但是沒有自己的行為。

例:

class PojoExample {

private String name;

private int age;

public String getName() { return this.name; }

public int getAge() { return this.age; }

public void setName(string name) { this.name = name; }

public void setAge(int age) { this.age = age; }

public boolean equals(Object other) {...}

}

二、依賴注入工作方式

依賴注入是Spring框架最受歡迎的特性之一,它是一種設(shè)計模式,允許構(gòu)建解耦的系統(tǒng)。假設(shè)兩個類繼承自單個公共父類,顯然一個類中的更改也會影響另一個類。簡單地說,解耦是一種允許對從公共父類繼承而不影響任何其他類的任何一個類進(jìn)行更改的方法。實(shí)現(xiàn)依賴注入以實(shí)現(xiàn)應(yīng)用程序中的松散耦合和可擴(kuò)展性。這種模式的主要目標(biāo)是使類盡可能獨(dú)立于另一個類,這增加了重用這些類的可能性,并能夠獨(dú)立于其他類測試它們。

如果使用“B”作為其變量,則類“A”被認(rèn)為與類“B”具有依賴性。如果們使用注入類“A”的依賴注入類“B”,這可以通過兩種主要方式完成:

1)參數(shù)注入

它是DI最簡單但最受歡迎的方式之一,它將通過setter方法注入依賴項(xiàng)。例:

public class Information

{

PersonalInformation personalInfo;

public void setPersonalInfo(PersonalInformation personalInfo){

this.personalInfo = personalInfo;

}

}

在上面的示例中,通過setter方法將類名稱PersonalInformation注入到類Information中。

2)構(gòu)造函數(shù)注入

在這種方法中,DI方法將通過構(gòu)造函數(shù)注入依賴項(xiàng)。

例:

public class Information

{

PersonalInformation personalInfo;

Information(PersonalInformation personalInfo){

this.personalInfo = personalInfo;

}

}

在上面的示例中,通過構(gòu)造函數(shù)將類名稱PersonalInformation注入到類Information中。

三、依賴注入的好處

舉一個消息傳遞服務(wù)的例子,可以從中執(zhí)行不同類型的消息傳遞方法,如電子郵件,短信,語音消息等。現(xiàn)在創(chuàng)建一個每個消息方法類應(yīng)該實(shí)現(xiàn)的接口 -

public interface Message {

void messagingMethod();

}

現(xiàn)在創(chuàng)建一個消息傳遞方法,并實(shí)現(xiàn)上述接口 -

public class EmailMessaging implements Message{

public void messagingMethod() {

System.out.println("Send Message through email!");

}

}

現(xiàn)在創(chuàng)建一個MessageService接口,它有一個抽象方法來發(fā)送消息。

public interface MessageService {

void sendMessage();

}

最后,將為其實(shí)現(xiàn)創(chuàng)建一個類,

public class MessageServiceImpl implements MessageService {

private EmailMessaging emailMessage;

MessageServiceImpl(){

this.emailMessage = new EmailMessaging();

}

public void sendMessage() {

emailMessage.messagingMethod();

}

}

分析一下這個MessageServiceImpl類中的問題:

1)由于它正在創(chuàng)建自己的EmailMessaging參考,它與EmailMessaging功能緊密耦合,對于SMS,Voice等其他所有方法,也必須以類似的方式引用它們。

2)由于MessageServiceImpl與EmailMessaging類緊密耦合,無法模擬其單元測試的依賴性。

3)這種強(qiáng)依賴,在為單獨(dú)的行為和使用接口創(chuàng)建單獨(dú)的類之后做很多工作,但是在MessageServiceImpl中引入了EmailMessaging本身,導(dǎo)致消息服務(wù)類強(qiáng)依賴Email服務(wù)。

解決:為了解決這些問題,可以引入一個外部類,它將負(fù)責(zé)注入這些依賴項(xiàng),以便對象本身不負(fù)責(zé)創(chuàng)建它們的依賴項(xiàng),但依賴項(xiàng)將被注入到對象中。

重寫MessageServiceImpl的代碼,依賴注入的實(shí)現(xiàn)方式。

public class MessageServiceImpl implements MessageService {

private Message message;

MessageServiceImpl(Message message){

this.message = message;

}

public void sendMessage() {

message.messagingMethod();

}

}

看看tabove代碼,現(xiàn)在應(yīng)該已經(jīng)清楚了解依賴注入概念。現(xiàn)在只需將它與MessageServiceImpl類的早期實(shí)現(xiàn)進(jìn)行比較,就沒有EmailMessaging類的依賴,因此類MessageServiceImpl與任何特定實(shí)現(xiàn)都沒有緊密耦合。

現(xiàn)在在這個類MessageServiceImpl中,依賴是通過類的構(gòu)造函數(shù)注入的:

MessageService messageService = new MessageServiceImpl(new EmailMessaging());

messageService.sendMessage();

對于SMS實(shí)現(xiàn),們可以這樣做:

MessageService messageService = new MessageServiceImpl(new SmsMessaging());

messageService.sendMessage();

這將調(diào)用SmsMessaging特定的實(shí)現(xiàn)。

代碼松散耦合,因?yàn)轭怣essageServiceImpl現(xiàn)在沒有綁定到任何特定的實(shí)現(xiàn),因?yàn)樗恢涝谶\(yùn)行時可以通過特定實(shí)現(xiàn)輕松交換的接口。

總結(jié)

以上是生活随笔為你收集整理的6. 以下耦合度中最松散的耦合是_Spring Java中的依赖注入,它是如何工作的?- 知识铺...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 3d动漫精品啪啪一区二区三区免费 | 成人国产精品久久久网站 | 黑人100部av解禁片 | av毛片网站| 亚洲综合av一区二区三区 | 亚洲欧美精品午睡沙发 | 白洁av| 最新中文字幕免费视频 | 亚洲综合色小说 | 日产精品久久久久久久 | 国产精品成人Av | 日本极品丰满ⅹxxxhd | 欧美a视频| 天天操天天操天天操天天操天天操 | 亚洲欧洲在线看 | 米奇影视第四色 | 欧美性啪啪 | 视频二区中文字幕 | 中文精品无码中文字幕无码专区 | 人人草人人射 | 自拍视频啪 | 白白色在线观看 | 懂色中文一区二区在线播放 | 性感美女av在线 | 97av在线视频| 四虎网址在线观看 | 午夜视频污 | 青草久久久| 欧美性猛交xxxx黑人猛交 | www.九九热.com | 97超碰在线免费 | 欧美成人免费在线视频 | 好好热视频| 欧美激情精品久久久久久免费 | 男女高潮网站 | 欧美暧暧视频 | 一区二区欧美精品 | 九色蝌蚪9l视频蝌蚪9l视频 | 一区二区三区黄色 | 岛国精品一区二区 | 亚洲色图另类 | 岛国av一区| 亚洲小视频在线 | 亚洲青涩网 | 日韩视频一区 | 夜夜狠 | 中文字幕乱妇无码av在线 | 日本精品黄色 | ass精品国模裸体pics | 久久久久久亚洲 | 久久在线免费观看视频 | 一区二区中文字幕在线观看 | 日韩伦理视频 | 国产男女猛烈无遮挡 | 亚洲精品中文字幕成人片 | 亚洲福利视频网站 | 国产精品老牛影视 | 日本久久视频 | 日韩久久一区二区 | 你懂的在线免费观看 | 蜜臀av午夜精品 | 尹人综合在线 | av福利网站| 美乳人妻一区二区三区 | 中文字幕无码乱码人妻日韩精品 | 麻豆传媒网站入口 | 波多野结衣视频网址 | 免费观看成年人视频 | 国产免费黄色av | 性生活视频网站 | 中文字幕av免费在线观看 | 欧美极品videos精品 | 亚洲成肉网 | 久久观看 | 最近日韩中文字幕中文 | 亚洲国产精品久久精品怡红院 | 精品区在线观看 | 香蕉精品在线 | 国产又爽又黄的视频 | 国产激情久久久久久熟女老人av | 色玖玖综合 | 激情男女视频 | 欧美激情久久久久久 | 91美女在线视频 | 国产日韩欧美精品在线 | 国产最新在线观看 | 伊人伊网 | 91精品人妻一区二区三区 | 黄色的网站在线观看 | 免费在线成人网 | 成人激情四射 | 麻豆视频一区二区三区 | 亚洲欧洲精品在线 | 一眉道姑| 国产毛片欧美毛片久久久 | 无码 制服 丝袜 国产 另类 | 天堂资源在线播放 | 精品国产乱码久久久久久闺蜜 | 国产熟妇搡bbbb搡bbbb搡 |