[轉]Java Spring的Ioc控制反轉Java反射原理

來源:互聯網
上載者:User

標籤:targe   factory   object   地方   ext   1.5   invoke   部分   lin   

轉自:http://www.kokojia.com/article/12598.html

學習一個東西的時候,如果想弄明白,最好想想架構內部是如何?的,如果是我做我會怎麼實現。下面我就寫一個Ioc DI的程式。Spring就相當於一個Bean工廠,你寫好自己的bean,輸入設定檔,Spring就可以幫你自動產生bean對象。下面我們建立一個java工程SimulateIoc 我們先寫二個Bean。內容都一樣,只是類名不一樣。定義一個Spring設定檔,我們起名字叫IocConfig.xml。下面我們來看一下TestIoc.Java檔案。看一下運行結果:

 

通過這個檔案我們可以看出,我們先建立了一個BeanFactory工廠,然後通過getBean方法獲得指定的Bean對象。是不是很神奇,只要通過不同的名字,我們就可以獲得我們想要的對象。BeanFactory裡面到底做了什麼那?這就是整個BeanFactory實現了。裡面很多都是處理xml的部分,我們主要看上面的兩個標紅的地方。

  Class bean = Class.forName(cls.getText());

  Object obj = bean.newInstance();

  Class.forName獲得指定類的類類。newInstance()獲得指定類的對象。

  Method entryPoint = bean.getMethod(attributename, String.class);

  entryPoint.invoke(obj,value);

  getMethod獲得指定方法的方法調用入口。然後調用invoke就會執行方法。

  如果想深入瞭解上面四句。可以看看Class檔案的反射機制。或者看我的另外一篇文章。

  以上Ioc DI實現過程非常簡單,並沒有考慮太多幹擾因素和功能。所以和Spring實現不一樣,但是原理都是一樣的。

[轉]Java Spring的Ioc控制反轉Java反射原理

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.