天天看點

Spring依賴注入詳解

Spring依賴注入詳解

目錄

1. Bean的依賴注入入門

2. Bean的依賴注入分析

3. Bean的依賴注入概念

4. Bean的依賴注入方式

5. Bean的依賴注入的資料類型

5.1 普通資料類型的注入

5.2 集合資料類型(List )的注入

5.3 集合資料類型(Map)的注入

5.4 集合資料類型(Properties)的注入

6. 引入其他配置檔案(分子產品開發)

7. Spring的重點配置

建立 UserService,UserService 内部在調用 UserDao的save() 方法

UserService

上次是使用建立一個測試類來調用userDao,userDao是由Spring來産生的

Spring依賴注入詳解

這次使用 userService 來調用 userDao

UserServiceImpl

建立一個測試類 UserController 來調用 userService 裡的 userDao 實作類的方法

Spring依賴注入詳解
Spring依賴注入詳解

将 UserServiceImpl 的建立權交給 Spring

從 Spring 容器中獲得 UserService 進行操作

Spring依賴注入詳解

目前UserService執行個體和UserDao執行個體都存在與Spring容器中,目前的做法是在容器外部獲得UserService執行個體和UserDao執行個體,然後在程式中進行結合。

Spring依賴注入詳解

因為UserService和UserDao都在Spring容器中,而最終程式直接使用的是UserService,是以可以在Spring容器中,将UserDao設定到UserService内部。

Spring依賴注入詳解

依賴注入(Dependency Injection):它是 Spring 架構核心 IOC 的具體實作。

在編寫程式時,通過控制反轉,把對象的建立交給了 Spring,但是代碼中不可能出現沒有依賴的情況。

IOC 解耦隻是降低他們的依賴關系,但不會消除。例如:業務層仍會調用持久層的方法。

那這種業務層和持久層的依賴關系,在使用 Spring 之後,就讓 Spring 來維護了。

簡單的說,就是坐等架構把持久層對象傳入業務層,而不用我們自己去擷取。

怎麼将UserDao怎樣注入到UserService内部呢?

構造方法

set方法

1)set方法注入

在UserServiceImpl中添加setUserDao方法

配置Spring容器調用set方法進行注入

property 裡的 name 指的是setXXX屬性名,把UserDao變成小寫開頭userDao

Spring依賴注入詳解

ref表示要引用的對象,這裡就直接引用前面 bean裡面的 id=userDao

要把容器裡面的 userDao 通過 userService 裡的 userDao 方法注入給它

Spring依賴注入詳解
Spring依賴注入詳解

P命名空間注入本質也是set方法注入,但比起上述的set方法注入更加友善,主要展現在配置檔案中,如下:

首先,需要引入P命名空間:

Spring依賴注入詳解

其次,需要修改注入方式

測試

Spring依賴注入詳解
Spring依賴注入詳解

2)構造方法注入

建立有參構造

Spring依賴注入詳解
Spring依賴注入詳解

上面的操作,都是注入的引用Bean,除了對象的引用可以注入,普通資料類型,集合等都可以在容器中進行注入。

注入資料的三種資料類型

普通資料類型

引用資料類型

集合資料類型

其中引用資料類型,此處就不再贅述了,之前的操作都是對UserDao對象的引用進行注入的,下面将以set方法注入為例,示範普通資料類型和集合資料類型的注入。

Spring依賴注入詳解
Spring依賴注入詳解

<code>List&lt;String&gt;</code>是普通資料類型,用 value,如果是 User 或其他對象用 ref

Spring依賴注入詳解

建立 User 類

set 方法注入

value-ref 表示值引用,被引用對象必須要存在于容器當中,才能注入。是以在後面建立user1、user2的同時引用對應的值

Spring依賴注入詳解

Properties 本身是字元串

Spring依賴注入詳解

把上面幾個配置的注入對象放在一起,運作後:

Spring依賴注入詳解

實際開發中,Spring的配置内容非常多,這就導緻Spring配置很繁雜且體積很大,是以,可以将部配置設定置拆解到其他配置檔案中,而在Spring主配置檔案通過import标簽進行加載

如:在主配置檔案中可以引用其他分子產品的配置檔案

Spring依賴注入詳解

通過如下引用:

引用後,隻要加載主配置檔案,分檔案就會一同被加載了

本文來自部落格園,作者:兮動人,轉載請注明原文連結:https://www.cnblogs.com/xdr630/p/15618141.html