日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Spring 依賴注入實(shí)現(xiàn)示例

瀏覽:45日期:2023-08-02 09:05:59

【注】本文譯自:https://springframework.guru/...

  在本文中,我將向你展示如何在 Spring Framework 的依賴項(xiàng)注入中使用 Project Lombok 以獲得最佳實(shí)踐。  Spring 框架本身具有多種執(zhí)行依賴項(xiàng)注入的方式。選項(xiàng)的靈活性是 Spring 框架的優(yōu)勢(shì)。但是,并非所有的依賴項(xiàng)注入選項(xiàng)都被視為最佳實(shí)踐。有些實(shí)際上不太好。

依賴注入示例

  我提供了一些設(shè)置示例,供我們查看必須使用的各種依賴項(xiàng)注入選項(xiàng)。  讓我們以 Spring Service 為例。就我們的目的而言,該服務(wù)具有一種返回字符串的方法。我們將使用“service”,并使用 Spring將其注入一些模擬控制器中。請(qǐng)記住,我們只是在探索如何使用 Spring Framework 進(jìn)行依賴項(xiàng)注入。

示例 Service

public class MyService { public String getHello(){ return 'Hello'; }}

 我們的 Field 擁有一項(xiàng)公有屬性的服務(wù)。我們可以注解該字段,Spring 將注入該服務(wù)的實(shí)例。

屬性注入

Field Controller

@Controllerpublic class FieldController { @Autowired MyService myService; public String saySomething(){ return myService.getHello(); }}

  這只是一個(gè)公有屬性,沒有 setter。顯然,這不是一個(gè)好的實(shí)踐,不推薦這樣做。  我們可以對(duì)此進(jìn)行一些改進(jìn),將該字段的訪問權(quán)限設(shè)為私有。Spring Framework 確實(shí)允許你自動(dòng)裝配私有字段。你確實(shí)看到有人這樣做。Spring 將執(zhí)行一些反射魔術(shù)來執(zhí)行依賴項(xiàng)注入

私有 Field Controller

public class PrivateFieldController { @Autowired private MyService myService; public String saySomething(){ return myService.getHello(); }}

  盡管只使用私有字段比較好,但是測(cè)試卻成了一個(gè)令人頭痛。你要么需要啟動(dòng) Spring Context,要么使用一些 Spring 實(shí)用程序來執(zhí)行依賴注入以進(jìn)行測(cè)試。不是世界末日,但總的來說很煩人。  我們可以通過為私有屬性提供 setter 來改善這一點(diǎn)。Getter 和 Setter 通常被認(rèn)為是面向?qū)ο缶幊讨械淖罴褜?shí)踐。通過注解 setter 方法,指示 Spring 使用 setter 進(jìn)行依賴項(xiàng)注入很簡(jiǎn)單。

方法注入

Setter Controller

@Controllerpublic class SetterController { private MyService myService; @Autowired public void setMyService(MyService myService) { this.myService = myService; } public String saySomething(){ return myService.getHello(); }}

  這是使用私有字段時(shí)的明顯改進(jìn)。有人會(huì)抱怨這要寫太多代碼。但是實(shí)際上,自 South Park 的第一季以來,此類任務(wù)已在現(xiàn)代 IDE 中實(shí)現(xiàn)了自動(dòng)化。

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

  下一個(gè)選項(xiàng)是使用構(gòu)造函數(shù)。到目前為止,這是我們研究過的最佳方法。 使用構(gòu)造函數(shù)設(shè)置注入的屬性時(shí),不必提供自動(dòng)裝配注釋。這是一個(gè)很好的功能,可以節(jié)省一些鍵入時(shí)間。從 Spring Framework 版本4.2開始,用于依賴項(xiàng)注入的構(gòu)造函數(shù)的注釋是可選的。

Constructor Controller

@Controllerpublic class ConstructorController { private MyService myService; public ConstructorController(MyService myService) { this.myService = myService; } public String saySomething(){ return myService.getHello(); }}

  基于構(gòu)造函數(shù)的依賴注入無(wú)疑被認(rèn)為是最佳實(shí)踐。曾經(jīng)有一段時(shí)間我個(gè)人偏愛基于 setter 的注入,但是后來又轉(zhuǎn)向基于構(gòu)造函數(shù)的注入。  我們?nèi)匀豢梢愿纳莆覀兊氖纠,F(xiàn)在有兩個(gè)主要問題。 第一,我們的服務(wù)類型是具體類型。硬類型的依賴注入不是最佳實(shí)踐。  第二個(gè)問題是,我們要注入的屬性未聲明為final。因此,從理論上講,該類可以在實(shí)例化注入的屬性后對(duì)其進(jìn)行修改。依# 賴注入最佳實(shí)踐  依賴項(xiàng)注入的最佳實(shí)踐是利用接口,構(gòu)造函數(shù)和 final 屬性。  我已經(jīng)設(shè)置了“最佳實(shí)踐”服務(wù)接口,并提供了服務(wù)實(shí)現(xiàn)---使用了 Spring Service 注解。

最佳實(shí)踐服務(wù)接口

public interface BpService { String getHello();}

最佳實(shí)踐服務(wù)實(shí)現(xiàn)

@Servicepublic class BpServiceImpl implements BpService { @Override public String getHello() { return 'The Best Hello!'; }}

使用 Project Lombok

  現(xiàn)在,使用 Project Lombok 進(jìn)行依賴注入的最佳實(shí)踐的秘訣在于:

聲明一個(gè) final 屬性接口 為類添加 Project Lomboc 注解 @RequiredArgsConstructor

  現(xiàn)在,Project Lombok 將為聲明為 final 的所有屬性生成一個(gè)構(gòu)造函數(shù)。Spring 會(huì)自動(dòng)使用 Lombok 提供的構(gòu)造函數(shù)來自動(dòng)裝配該片段。

Lombok Controller

@RequiredArgsConstructor@Controllerpublic class BpFinalConstructorController { private final BpService bpService; public String saySomething(){ return bpService.getHello(); }}

  這是執(zhí)行此操作的真正好方法。您的代碼保持非常干凈。使用 Spring時(shí),通常需要多個(gè)自動(dòng)裝配屬性。  當(dāng)您需要添加另一個(gè) bean 時(shí),只需聲明一個(gè) final 屬性。  如果您重構(gòu)并且不再需要 Spring 托管的依賴項(xiàng),則只需刪除 final 屬性。  你不再需要維護(hù)設(shè)置器或構(gòu)造函數(shù)代碼。Project Lombok 減輕了您的日常工作。  我在日常編碼中一直使用這種技術(shù)。絕對(duì)是節(jié)省時(shí)間。并導(dǎo)致更干凈的代碼。未使用的屬性和未使用的構(gòu)造函數(shù)參數(shù)已一去不復(fù)返了。重構(gòu)現(xiàn)在不那么痛苦了!  本文的源代碼可在GitHub 上找到。

以上就是Spring 依賴注入實(shí)現(xiàn)示例的詳細(xì)內(nèi)容,更多關(guān)于Spring 依賴注入的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Spring
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩成人免费| 精精国产xxxx视频在线野外| 久久婷婷激情| 日韩欧美三级| 桃色av一区二区| 午夜久久中文| 精品国产一区二区三区噜噜噜| 国产欧美一区二区三区国产幕精品| 日本不卡一二三区黄网| 综合国产在线| 亚洲精品国模| 欧美精品国产白浆久久久久| 国产欧美久久一区二区三区| 久久丁香四色| av资源中文在线| 日本在线精品| 国产精品magnet| 一区二区精彩视频| 精品国产亚洲一区二区三区大结局| 美女福利一区二区三区| 午夜宅男久久久| 国产欧美一区二区色老头| 成人午夜网址| 日韩av首页| 国产精品伦理久久久久久| 999国产精品999久久久久久| 国产精品女主播一区二区三区| 美女视频免费精品| 国产伦久视频在线观看| 久久精品在线| 午夜在线一区| 91精品国产一区二区在线观看| 久久国产欧美| 麻豆9191精品国产| 国产精品伊人| 日本免费一区二区三区四区| 亚洲综合在线电影| 亚洲一卡久久| 国产欧美在线| 久久亚洲国产| 日韩动漫一区| 国产资源在线观看入口av| 亚洲电影在线| 青青草91视频| 久久久久美女| 欧美日韩中出| 99久久夜色精品国产亚洲狼 | 亚洲综合电影| 国产精品99免费看| 亚洲精品大片| 国产精品久久久久蜜臀| 热久久免费视频| 日本久久精品| 日韩影院精彩在线| 欧美成人精品一级| 影音国产精品| 久久中文精品| 爽好久久久欧美精品| 激情不卡一区二区三区视频在线| 国产模特精品视频久久久久| 精品免费视频| 亚洲另类av| 日韩不卡视频在线观看| 日韩一区网站| 国产99久久久国产精品成人免费| 日本欧洲一区二区| 亚洲爱爱视频| 国产精品久久久久久久久久白浆 | 五月天激情综合网| 国产精品网在线观看| 日韩综合一区二区| 日韩在线短视频| 欧美一区91| 日韩视频二区| 蜜桃视频在线网站| 国产精品免费不| 波多野结衣一区| 成人在线视频免费看| 日本伊人久久| 在线亚洲自拍| 欧美精品资源| 国产一区二区三区不卡视频网站 | 色天使综合视频| 国产精品一区二区美女视频免费看 | 日韩免费小视频| 91成人在线网站| 日韩午夜黄色| av资源亚洲| 久久99久久久精品欧美| 亚洲专区视频| 99pao成人国产永久免费视频| 福利片在线一区二区| 中文一区一区三区免费在线观| 日本久久成人网| 国产视频网站一区二区三区| 六月婷婷一区| 欧美在线网站| 99精品在线免费在线观看| 在线观看精品| 国产成人免费| 欧美日韩一区二区三区不卡视频 | 欧美一区不卡| 亚洲综合色婷婷在线观看| 精品一区在线| 日韩欧美少妇| 成人日韩在线| 日韩欧美字幕| 国产在线观看www| 国产精品一区免费在线| 日韩精品亚洲aⅴ在线影院| 美日韩精品视频| 午夜欧美精品| 欧美精品羞羞答答| 亚洲国产专区| 激情丁香综合| 蜜桃tv一区二区三区| 亲子伦视频一区二区三区| 日韩精品诱惑一区?区三区| 精品久久不卡| 久久wwww| 久久91视频| 国产成人久久精品一区二区三区| 精品三级国产| 久久精品色播| 国产成人精品亚洲线观看| 日韩综合一区| 亚洲91久久| 香蕉久久99| 伊人影院久久| 免费人成黄页网站在线一区二区| 视频精品一区二区| 视频一区日韩精品| 日韩av一区二区三区| 91欧美精品| 麻豆精品蜜桃视频网站| 国产一区二区三区国产精品| 日韩免费福利视频| 婷婷综合亚洲| 丝袜美腿亚洲一区二区图片| 综合激情婷婷| 国产精品毛片aⅴ一区二区三区| 精品一二三区| 美女福利一区二区三区| 不卡在线一区二区| 中文字幕一区二区av| 国产视频一区二| 国产精品久久久久久久久久10秀| 国产亚洲一区二区手机在线观看| 秋霞影视一区二区三区| 999在线观看精品免费不卡网站| 中文字幕乱码亚洲无线精品一区| 日韩av一区二区三区| 久久精品国产99| 欧美日韩免费观看视频| 美女久久网站| 国产精品午夜av| 九九色在线视频| 亚洲欧美日韩国产综合精品二区 | 天堂成人免费av电影一区| 亚洲深深色噜噜狠狠爱网站| 88久久精品| 另类专区亚洲| 国产精品日本| 在线精品视频在线观看高清| 亚洲精品自拍| 精品日韩在线| 精品中文字幕一区二区三区av| 亚洲日本国产| 久久一区欧美| 天堂网在线观看国产精品| 麻豆国产精品777777在线| 九九精品调教| 日韩va欧美va亚洲va久久| 日韩免费福利视频| 日韩国产在线一| 日韩免费小视频| 日韩欧美美女在线观看| 在线天堂中文资源最新版| 免费在线成人网| 国产一二在线播放| 亚洲精品激情| 另类中文字幕国产精品| 亚洲无线观看| 欧美国产美女| 亚洲精品日本| 播放一区二区| 91成人在线网站| 精品一区毛片| 麻豆国产一区| 视频一区在线视频| 老司机精品视频在线播放| 国产亚洲欧洲| 加勒比视频一区| 在线免费观看亚洲| 性感美女一区二区在线观看| 91精品一区| 欧美高清不卡| 欧美激情福利| 中文字幕一区二区三区在线视频| 国产福利片在线观看|