步驟一: 實(shí)現(xiàn)Scope接口?
第二步注冊作用域
在上例子中
第一步要創(chuàng)建一個User類型的Bean放入容器中,這個Bean被@Scope(自定義作用域名稱) 修飾, 標(biāo)明它的作用域是自定義類型的
第二步使用ConfigurableBeanFactory#registerScope(自定義作用域名,自定義作用域?qū)ο? 將自定義作用域注冊到容器中
當(dāng)根據(jù)類型獲取User類型的Bean的時候,IOC容器會檢測到該Bean被@Scope()修飾,則會回調(diào)自定義作用域的get()方法, 第一個參數(shù)是你要獲取的Bean在IOC容器中的名稱 第二個參數(shù)是通過延遲注入的方式在IOC容器中獲取的User對象,表現(xiàn)為ObjectFactory (此時ObjectFactory.getObject()得到的就是默認(rèn)情況下getBean的結(jié)果,這里由于要自定義作用域,所以IOC容器把要注入的Bean變成ObjectFactory作為參數(shù)傳遞到get()方法中,讓我們自定義操作Bean)