Spring Ioc 依賴注入的幾種方式

2021-07-11 18:49:57 字數 1920 閱讀 1000

一 setter方法注入

配置檔案如下:

action實現類中**:

private ihelloservice helloservice;

private string name ;

public void sayhello()

public void sethelloservice(ihelloservice helloservice)

public void setname(string name)

這裡的name和helloservice都採用屬性的setter方法注入。即類中設定乙個全域性屬性,並對屬性有setter方法,以供容器注入。

二 構造器注入

spring也支援構造器注入,也即有些資料中的構造子或者建構函式注入。

先看配置檔案:

action實現類中**:

private helloserviceimpl helloservice;

private string name ;

public springconstructorhelloaction(helloserviceimpl helloservice,string name)

@override

public void sayhello()

同樣設定2個屬性,然後在建構函式中注入。

三靜態工廠注入

配置檔案如下:

action實現類:

private helloserviceimpl helloservice;

private string name = null;

private springfactoryhelloaction(string name ,helloserviceimpl helloservice)

public static springfactoryhelloaction createinstance(string name ,helloserviceimpl helloservice)

@override

public void sayhello()

四 無配置檔案注入(自動注入)

上面三種方法都需要編寫配置檔案,在spring2.5中還提供了不編寫配置檔案的ioc實現。需要注意的是,無配置檔案指bean之間依賴,不基於配置檔案,而不是指沒有spring配置檔案。

配置檔案如下:

<?xml version="1.0" encoding="utf-8"?>

"xmlns:xsi=""

xsi:schemalocation="

/spring-beans-2.5.xsd">

可見上面只是設定了helloservice和helloaction兩個bean,並沒有設定helloaction對helloservice的依賴。

另外是必須的,有此才支援自動注入。

action實現類:

/** 屬性自動裝載

*//*

@autowired

private helloservice helloservice;

@override

public void sayhello()

setter方法自動注入:

/** 也可以使用set方法設定

*//*

@autowired

public void sethelloservice(helloservice helloservice)

最後在spring的reference文件中有提到,如果不使用自動注入,盡量使用setter方法,一般通用的也是使用setter方法。

而使用自動注入還是配置檔案方式,如果jdk低於1.5或者spring不是2.5,就只能夠使用配置檔案方式了。其它的就看實際專案選擇了。

spring ioc 依賴注入

spring ioc 控制反轉,或叫依賴注入 簡單的bean裝配 import import import test.helloworld public class test public class helloworld beans.xml xml version 1.0 encoding utf...

Spring IOC原理和應用 依賴注入

spring提供ioc容器,對 bean進行例項化。使用bean時候從容器中取。ioc控制反轉,將物件的建立權反轉到了spring容器中。1 把物件的建立交給spring進行管理 2 ioc操作兩部分 1 ioc配置檔案方法 2 ioc的註解方式 配置bean 1 ioc底層原理使用技術 1 xml...

Spring IOC容器和DI依賴注入

inversion of control 控制反轉容器。作用 解決物件建立以及管理問題。解析 傳統關於物件建立 user user new user 自己控制物件的建立,自己宣告變數管理物件引用。ioc 需要物件,自己不建立,交給ioc容器建立並管理,需要的時候從ioc容器中獲取即可,這種情況就叫控...