一 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容器中獲取即可,這種情況就叫控...