Ioc及Bean容器(三)

2021-09-07 09:02:13 字數 3110 閱讀 6847

2023年, martin fowler **了同乙個問題,既然 ioc 是控制反轉,那麼到底是「哪些方面的控制被反轉了呢?」,經過詳細地分析和論證後,他得出了答案:「獲得依賴物件的過程被反轉了」。控制被反轉之後,獲得依賴物件的過程由自身管理物件變為由 ioc 容器主動注入。於是,他給「控制反轉」取了乙個更合適的名字叫做「依賴注入(dependency injection,di)」。他的這個答案,實際上給出了實現 ioc 的方法:注入。所謂依賴注入,就是由 ioc 容器在執行期間,動態地將某種依賴關係注入到物件之中。

房屋中介         ioc

1. 找中介     ----> 1. 找ioc容器

2. 中介介紹房子  ----> 2. 找ioc容器

3. 租房、入住   ----> 3. 使用物件

建立 unittestbase 類,完成對 spring 配置檔案的載入、銷毀

所有的單元測試類都繼承自 unittestbase ,通過它的 getbean 方法獲取想要得到的物件

子類(具體執行單元測試的類)加註解: @runwith(blockjunit4classrunner.class)

單元測試方法加註解: @test

右鍵選擇要執行的單元測試方法執行或者執行乙個類的全部單元測試方法

unittestbase 類

package

com.imooc.test.base;

import

org.junit.after;

import

org.junit.before;

import

org.springframework.beans.bean***ception;

import

import

org.springframework.util.stringutils;

public

class

unittestbase

public

unittestbase(string springxmlpath)

@before

//test 執行前執行

public

void

before()

try

catch

(bean***ception e)

}@after

//test 執行結束後執行

public

void

after()

@suppresswarnings("unchecked")

protected

extends object>t getbean(string beanid)

catch

(bean***ception e)

}protected

extends object> t getbean(classclazz)

catch

(bean***ception e) }}

配置 spring-ioc.xml

xml version="1.0" encoding="utf-8"

?>

<

beans

xmlns

=""xmlns:xsi

=""xsi:schemalocation

="/spring-beans.xsd"

>

<

bean

id="oneinte***ce"

class

="com.imooc.ioc.inte***ces.oneinte***ceimpl"

>

bean

>

beans

>

測試類

package

com.imooc.test.ioc.inte***ces;

import

org.junit.test;

import

org.junit.runner.runwith;

import

org.junit.runners.blockjunit4classrunner;

import

com.imooc.ioc.inte***ces.oneinte***ce;

import

com.imooc.test.base.unittestbase;

@runwith(blockjunit4classrunner.

class

)public

class testoneinte***ce extends

unittestbase

@test

public

void

testsay()

}

輸出結果

web應用

<

listener

>

<

listener-class

>org.springframework.web.context.contextloaderlistener

listener-class

>

listener

>

<

servlet

>

<

servlet-name

>context

servlet-name

>

<

servlet-class

>org.springframework.web.context.contextloaderservlet

servlet-class

>

<

load-on-startup

>1

load-on-startup

>

servlet

>

本文出自:

藝意

在IoC容器中裝配Bean

xml xmlns xmlns xsi xsi schemalocation spring beans.xsd id car class test.car bean beans 實現類 public class car 測試 public class test 重點 推薦以id來指定bean的唯一名...

IOC容器 Bean管理 基於註解方式

2.元件掃瞄配置 3.基於註解方式實現屬性注入 4.完全註解開發 1 註解是 特殊標記,格式 註解名稱 屬性名稱 屬性值,屬性名稱 屬性值 2 使用註解,註解作用在類上面,方法上面,屬性上面 3 使用註解目的 簡化 xml 配置 下面四個註解功能是一樣的,都可以用來建立 bean 例項 1 comp...

在 Spring 的 IOC 容器裡配置 Bean

配置 bean 配置形式 基於 xml 檔案的方式 基於註解的方式 bean 的配置方式 通過全類名 反射 通過工廠方法 靜態工廠方法 例項工廠方法 factorybean 依賴注入的方式 屬性注入 構造器注入 注入屬性值細節 自動轉配 bean 之間的關係 繼承 依賴 bean 的作用域 sing...