基於nutz架構理解Ioc容器,nutz架構ioc

來源:互聯網
上載者:User

基於nutz架構理解Ioc容器,nutz架構ioc
同樣我們從問題入手去驗證以及去理解Ioc容器都做了哪些事情:1.nutz是有幾種方式擷取需要容器管理bean的資訊?

       第一種是使用json格式的檔案進行配置,如:       

第二種:使用註解@IocBean

       第三種:使用xml                     略.......
2. 如何那麼多的方式如何進行選擇呢?
      我們自己實際的生產環境的用法是:      一般的依賴關係都是固定的,在啟動並執行時候基本不變的,我們採用的是註解,      將可能變動的關係寫到設定檔裡。      比如:我們將項目中各個分層之間的service採用的是註解,                  

將資料庫相關配置放到設定檔中,

3.ioc容器是如何確定哪些Bean是容器需要管理的:

   問幾個問題:    a.它是怎麼知道哪些檔案中配置是需要被容器管理的bean,以及需要掃描哪些類上的@IocBean註解呢??              nutz提供了一個註解(@IocBy)專門用於在主模組類上指定掃描哪些檔案以及註解。              

有可以知道: json方式配置的bean的載入器去webconfig/下,以及Linux下的兩個路徑下掃描。 註解方式配置的bean載入器將掃描com.uxuexi開頭包下的類。 b.它是如何去掃描除本項目之外的jar包(一般都是自己建立的,不會掃描第三方)呢? 可以在項目啟動的時候,nutz的ioc容器載入完畢之前手動將要容器管理的bean掃描到容器中。 4. 何時開始建立這些被容器管理的bean?

           nutz在服務啟動的時候將所有被@IocBean註解的類以及配置在json格式檔案中的類資訊載入到一個map中。            

就是上面圈住的那個map,其中key預設是這個類名。 而這個IocObject這個類主要就是記住這個類的資訊:

就是說在伺服器啟動的時候nutz只是掃描註解和檔案將需要被容器管理的bean的資訊集中儲存到一個地方中,並沒有真正的建立這些bean的執行個體。5.容器什麼時候會建立真正bean的執行個體??

           分兩種種情況:             1.第一種當服務啟動的時候就需要擷取容器中的bean執行個體,可以手動擷取容器。                    

2.第二種是當我們的第一次http請求映射到的那個Module類,nutz會幫你去從ioc容器中取。

6.都提供哪些Ioc的注入類型??

          建構函式注入:                     

屬性注入:

7.ioc容器在什麼時候銷毀???

       nutz通過將Filter的destroy方法在web容器停止啟動並執行時候會將ioc容器銷毀,        

NutzLoading類中的方法:

就是將緩衝中存放map清空。

 



 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.