簡單實現spring中Ioc容器

2021-08-16 08:30:08 字數 1043 閱讀 1296

spring的ioc容器是通過工廠模式+反射機制完成的。

簡單來說反射機制就是我們可以通過類的名字來生成物件。

比如比較常見的用法

person p=(person)class.forname("chinese").newinstance();
這樣子,我們可以直接通過chinese這個類的名字來構造這個物件。

下面我們看看spring是如何通過ioc來獲取物件的。

public class helloworld 

public void getmessage()

}

構造xml檔案,定義bean.

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

通過beanfactory來獲取物件例項。

public static void main(string args)

}可見它的原理是這樣子的,通過解析xml檔案,獲取類的名稱。

通過反射機制,生成物件並且返回。

下面我們簡單實現一下。

public inte***ce person
chinese繼承於person介面。

public class chinese implements person

}

最後我們寫乙個工廠模式來輸出例項。

public class beanfactory catch (exception e)

return p;

}}

實驗一下:

public class test
輸出是 huang 22

總結:通過反射機制,可以用很少的**去例項化所以的類,而且不需要程式設計師再去改動beanfactory方法。

反之沒有反射機制的話,我們每寫乙個模擬如england類,那我們就要重新修改beanfactory了,非常麻煩

Spring中Ioc的幾種實現方式

一 setter方法注入 配置檔案如下 action實現類中 private ihelloservice helloservice private string name public void sayhello public void sethelloservice ihelloservice h...

Spring中IOC程式設計

一 基本概念 1.ioc inverse of controll 控制反 所謂控制反轉就是把建立物件 bean 和維護物件 bean 的關係的權利從程式中轉移到spring的 容器 applicationcontext.xml 而程式本身不再維護.2.di dependency injection ...

簡單模擬spring中ioc容器建立物件例項

spring本質上是乙個大工廠,根據xml檔案能建立出程式所需的物件,有效的降低程式的耦合性。那為什麼這樣能降低程式的耦合性呢?我們最初想要建立物件,都是呼叫類的建構函式,new出我們需要的物件。但是這樣做不好,一旦我們要例項化的物件發生改變,就需要把每一處建立例項的 都修改,提高了 維護的難度。於...