spring常用的三種依賴注入方式
導讀 | 平常的java開發中,程式設計師在某個類中需要依賴其它類的方法,則通常是new一個依賴類再呼叫類例項的方法,這種開發存在的問題是new的類例項不好統一管理,spring提出了依賴注入的思想,即依賴類不由程式設計師例項化,而是透過spring容器幫我們new指定例項並且將例項注入到需要該物件的類中。 |
依賴注入的另一種說法是“控制反轉”,通俗的理解是:平常我們new一個例項,這個例項的控制權是我們程式設計師,而控制反轉是指new例項工作不由我們程式設計師來做而是交給spring容器來做。Spring透過DI(依賴注入)實現IOC(控制反轉),常用的注入方式主要有三種:構造方法注入,set方法引數注入,介面注入。
一.目前使用最廣泛的 @Autowired:自動裝配
基於@Autowired的自動裝配,預設是根據型別注入,可以用於構造器、介面、方法注入,使用方式如下:
@Autowired 構造方法、方法、介面
@Autowired預設是根據引數型別進行自動裝配,且必須有一個Bean候選者注入預設required=true,如果允許出現0個Bean候選者需要設定屬性“required=false”,“required”屬性含義和@Required一樣,只是@Required只適用於基於XML配置的setter注入方式,只能打在setting方法上。
構造器注入
透過將@Autowired註解放在構造器上來完成構造器注入,預設構造器引數透過型別自動裝配,如下所示:
public class Test1 { private MessageInterface message; @Autowired //構造器注入 private Test1(MessageInterface message) { this.message = message; } //省略getter和setter }
介面注入
透過將@Autowired註解放在構造器上來完成介面注入。
public class Test2 { @Autowired //介面注入 private MessageInterface messageInterface; //省略getter和setter }
方法引數注入
透過將@Autowired註解放在方法上來完成方法引數注入。
public class Test3 { private MessageInterface message; @Autowired //setter方法注入 public void setMessage(MessageInterface message) { this.message = message; } public String getMessage() { return message; } } public class Test4 { private MessageInterface message; // private Listlist; @Autowired(required = true) //任意一個或多個引數方法注入 private void initMessage(MessageInterface message, ArrayListlist) { this.message = message; this.list = list; } //省略getter和setter }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2770212/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Spring的三種依賴注入的方式Spring依賴注入
- Spring的依賴注入的方式Spring依賴注入
- Spring學習(三)依賴注入Spring依賴注入
- spring 的依賴注入Spring依賴注入
- SpringDI四種依賴注入方式詳解Spring依賴注入
- Spring6框架中依賴注入的多種方式(推薦構造器注入)Spring框架依賴注入
- Spring 依賴注入 DISpring依賴注入
- Spring IOC——依賴注入Spring依賴注入
- Spring 迴圈依賴的三種方式(三級快取解決Set迴圈依賴問題)Spring快取
- 從Hessian RPC 註解方式看Spring依賴注入RPCSpring依賴注入
- Spring.Net 依賴注入Spring依賴注入
- Spring系列.依賴注入配置Spring依賴注入
- 大白話spring依賴注入Spring依賴注入
- spring原始碼解析之IOC容器(三)——依賴注入Spring原始碼依賴注入
- spring框架學習 依賴注入Spring框架依賴注入
- Spring原始碼解析——依賴注入(二)Spring原始碼依賴注入
- Spring 控制反轉和依賴注入Spring依賴注入
- 死磕Spring原始碼-依賴注入Spring原始碼依賴注入
- Spring系列第八講 依賴注入之手動注入Spring依賴注入
- 依賴注入?依賴注入是如何實現解耦的?依賴注入解耦
- ASP.NET Core - 依賴注入(三)ASP.NET依賴注入
- Spring【依賴注入】就是這麼簡單Spring依賴注入
- 手寫Spring---DI依賴注入(2)Spring依賴注入
- 簡單瞭解下Spring中的各種Aware介面實現依賴注入Spring依賴注入
- Spring注入Bean的幾種方式SpringBean
- .net core番外第2篇:Autofac的3種依賴注入方式(建構函式注入、屬性注入和方法注入),以及在過濾器裡面實現依賴注入依賴注入函式過濾器
- angular依賴注入Angular依賴注入
- XUnit 依賴注入依賴注入
- Spring 原始碼分析之 bean 依賴注入原理(注入屬性)Spring原始碼Bean依賴注入
- Spring原始碼系列:依賴注入(四)-總結Spring原始碼依賴注入
- spring 詳細講解(ioc,依賴注入,aop)Spring依賴注入
- 如何用最簡單的方式解釋依賴注入?依賴注入是如何實現解耦的?(通俗易懂)依賴注入解耦
- Spring中bean的四種注入方式SpringBean
- Laravel 依賴注入方式驗證表單欄位Laravel依賴注入
- 我看依賴注入依賴注入
- 依賴注入系列教程依賴注入
- 理解 Angular 依賴注入Angular依賴注入
- Abp vNext 依賴注入依賴注入