您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關Spring中Aware接口的實現原理是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
使用示例:
@Component public class BeanAware implements ApplicationContextAware { private ApplicationContext ctx ; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.ctx = applicationContext ; System.out.println(this.ctx) ; } }
入口函數:
public static void main(String[] args) { AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext("com.pack") ; ctx.getBean(BeanAware.class) ; ctx.close(); }
正如上面這樣只要你實現對應的*Aware接口就可以使用相應的接口對象了。
先來看看Aware接口的層級結構:
接著我們查看
AnnotationConfigApplicationContext的父類AbstractApplicationContext
在父類中,有如下方法:
上面選中的就是處理Aware相關接口類了。查看這類
class ApplicationContextAwareProcessor implements BeanPostProcessor
該類是個Bean后處理器,在bean實例化及依賴注入完成后、在任何初始化代碼(比如配置文件中的init-method)調用之前調用和初始化代碼調用之后調用
在初始化之前方法中先檢查Bean是否是響應Aware接口的子類,如果不是直接返回;否則進入invokeAwareInterfaces方法
看完上述內容,你們對Spring中Aware接口的實現原理是什么有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。