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

您的位置:首頁技術文章
文章詳情頁

Spring 依賴注入實現示例

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

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

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

依賴注入示例

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

示例 Service

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

 我們的 Field 擁有一項公有屬性的服務。我們可以注解該字段,Spring 將注入該服務的實例。

屬性注入

Field Controller

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

  這只是一個公有屬性,沒有 setter。顯然,這不是一個好的實踐,不推薦這樣做。  我們可以對此進行一些改進,將該字段的訪問權限設為私有。Spring Framework 確實允許你自動裝配私有字段。你確實看到有人這樣做。Spring 將執行一些反射魔術來執行依賴項注入

私有 Field Controller

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

  盡管只使用私有字段比較好,但是測試卻成了一個令人頭痛。你要么需要啟動 Spring Context,要么使用一些 Spring 實用程序來執行依賴注入以進行測試。不是世界末日,但總的來說很煩人。  我們可以通過為私有屬性提供 setter 來改善這一點。Getter 和 Setter 通常被認為是面向對象編程中的最佳實踐。通過注解 setter 方法,指示 Spring 使用 setter 進行依賴項注入很簡單。

方法注入

Setter Controller

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

  這是使用私有字段時的明顯改進。有人會抱怨這要寫太多代碼。但是實際上,自 South Park 的第一季以來,此類任務已在現代 IDE 中實現了自動化。

構造函數注入

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

Constructor Controller

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

  基于構造函數的依賴注入無疑被認為是最佳實踐。曾經有一段時間我個人偏愛基于 setter 的注入,但是后來又轉向基于構造函數的注入。  我們仍然可以改善我們的示例。現在有兩個主要問題。 第一,我們的服務類型是具體類型。硬類型的依賴注入不是最佳實踐。  第二個問題是,我們要注入的屬性未聲明為final。因此,從理論上講,該類可以在實例化注入的屬性后對其進行修改。依# 賴注入最佳實踐  依賴項注入的最佳實踐是利用接口,構造函數和 final 屬性。  我已經設置了“最佳實踐”服務接口,并提供了服務實現---使用了 Spring Service 注解。

最佳實踐服務接口

public interface BpService { String getHello();}

最佳實踐服務實現

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

使用 Project Lombok

  現在,使用 Project Lombok 進行依賴注入的最佳實踐的秘訣在于:

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

  現在,Project Lombok 將為聲明為 final 的所有屬性生成一個構造函數。Spring 會自動使用 Lombok 提供的構造函數來自動裝配該片段。

Lombok Controller

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

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

以上就是Spring 依賴注入實現示例的詳細內容,更多關于Spring 依賴注入的資料請關注好吧啦網其它相關文章!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产一区一一区高清不卡| 男人操女人的视频在线观看欧美| 蜜臀av亚洲一区中文字幕| 丝袜亚洲另类欧美| 亚洲精品欧美| 欧美国产三级| 人人草在线视频| jiujiure精品视频播放| 亚洲影视一区二区三区| 国产日韩中文在线中文字幕| 四虎国产精品免费观看| 91精品一区二区三区综合| 美女黄网久久| 国产精品视频一区二区三区综合| 久久97视频| 亚洲深夜视频| 亚洲视频www| 国产精品jk白丝蜜臀av小说| 日韩免费av| 亚洲一区二区三区四区电影| 国产日韩一区| 天堂日韩电影| 日韩黄色av| 日韩成人高清| 日韩精品中文字幕一区二区| 国产乱码午夜在线视频| 中文不卡在线| 女生影院久久| 亚洲综合激情在线| 中文字幕在线免费观看视频| 亚洲综合不卡| 美女视频网站久久| 国产精品普通话对白| 国产精品115| 五月婷婷亚洲| 久久精品国产免费| 免费在线观看成人| 中文字幕成在线观看| 婷婷综合国产| 婷婷综合亚洲| 精品久久在线| 日韩欧美中文在线观看| 日韩精品水蜜桃| 国产欧美日韩亚洲一区二区三区| japanese国产精品| 日韩1区2区| 最新国产精品视频| 蜜臀久久精品| 国产精品一区2区3区| 国产一区91| 在线人成日本视频| 国产女人18毛片水真多18精品| 欧美/亚洲一区| 国产一区二区久久久久| 日韩精品一级| 另类亚洲自拍| 激情久久久久久| 欧美激情麻豆| 日韩中文字幕| 亚洲欧美日韩国产综合精品二区 | 欧美精品影院| 国产精品毛片| 久久精品亚洲人成影院 | 国产传媒在线| 久久国产欧美日韩精品| 99热精品在线| 婷婷精品视频| 成人午夜网址| 国产日韩免费| 日韩精品久久久久久久软件91| 亚洲综合国产| 欧美中文字幕一区二区| 丝袜诱惑一区二区| 精品视频亚洲| 美女尤物国产一区| 国产图片一区| 国产日韩欧美高清免费| 日韩欧美三区| 日韩欧美激情| 日韩二区三区四区| 日韩在线视频一区二区三区| 蘑菇福利视频一区播放| 女人av一区| 怡红院精品视频在线观看极品| 亚洲一级高清| 亚洲精品电影| 99亚洲视频| 快she精品国产999| 日韩制服丝袜先锋影音| 亚洲欧美日韩专区| 夜夜精品视频| 蜜臀av国产精品久久久久| 妖精视频成人观看www| 欧美不卡在线| 亚洲综合丁香| 亚洲日产av中文字幕| 日韩三区四区| 日本少妇精品亚洲第一区| 国产三级精品三级在线观看国产| 国产日本久久| 国产精品密蕾丝视频下载| 国产欧美日韩精品一区二区免费| 国产欧美自拍一区| 久久精品日韩欧美| 亚洲国产福利| 欧美日韩国产免费观看视频| 欧美一区=区| 视频一区日韩| 国产精品久久| 国产精品13p| 国产99久久| 伊人国产精品| 日本h片久久| 精品一区av| 欧美理论视频| 午夜电影一区| 激情久久99| 免费久久精品| 日韩精品一区二区三区中文在线| 国产极品一区| 国产一区日韩一区| 亚洲精品麻豆| 国产在线观看91一区二区三区| 91精品国产成人观看| 中文视频一区| 国产一区二区三区网| 狠狠久久婷婷| 香蕉久久一区| 91视频一区| 视频一区欧美日韩| 国产精品亚洲片在线播放| 中文字幕系列一区| 日韩一区网站| 天堂а√在线最新版中文在线| 美女国产一区| 国产+成+人+亚洲欧洲在线| 伊人久久婷婷| 久久av网站| 亚洲欧美日韩国产一区| 麻豆中文一区二区| 久久夜色精品| 日韩成人精品一区| 美女网站久久| 高清一区二区| 亚洲精品伦理| 中文另类视频| 国产伦精品一区二区三区千人斩| 久久免费国产| 久久超级碰碰| 日韩精品一级中文字幕精品视频免费观看 | 日本一区中文字幕| 免费一区二区三区在线视频| 亚洲日本久久| 国产欧美一区二区三区精品酒店| 男女男精品视频网| 中文在线а√天堂| 91成人在线网站| 国产一区清纯| 久久精品免费看| 亚洲久久一区| 波多野结衣一区| 久久精品五月| 日韩激情综合| 欧美1区免费| 嫩呦国产一区二区三区av| 久久午夜影视| 私拍精品福利视频在线一区| 国产精品亚洲欧美一级在线| 国产视频久久| 中文另类视频| 久久这里只有| 日韩1区2区3区| 亚洲激情欧美| 蜜桃av在线播放| 久久亚洲精精品中文字幕| 日韩三区四区| 中文不卡在线| 99视频在线精品国自产拍免费观看| 老司机精品视频网| 亚洲ww精品| 国产模特精品视频久久久久| 国产亚洲一区二区手机在线观看| 国产美女久久| 91p九色成人| 影院欧美亚洲| 国产精品手机在线播放| 久久国产精品亚洲77777| 日韩在线不卡| 欧美激情福利| 国产伦精品一区二区三区在线播放| 亚洲一区二区日韩| 久久亚洲不卡| 国产精品88久久久久久| 性欧美videohd高精| 麻豆精品av| 牛牛精品成人免费视频| 国产精品欧美在线观看| 97se亚洲| 日韩精品导航| 久久国产婷婷国产香蕉|