講的很好,很清楚
幾個直擊靈魂的Spring拷問(七)今天這一篇主要想圍繞著Spring的循環(huán)依賴問題以及終極靈魂拷問如何手寫Spring的問題講講。 一、Spring循環(huán)依賴 1.什么是循環(huán)依賴 Spring中的循環(huán)依賴一直是...
講的很好,很清楚
幾個直擊靈魂的Spring拷問(七)今天這一篇主要想圍繞著Spring的循環(huán)依賴問題以及終極靈魂拷問如何手寫Spring的問題講講。 一、Spring循環(huán)依賴 1.什么是循環(huán)依賴 Spring中的循環(huán)依賴一直是...
專門注冊了簡書賬號過來評論這篇文章。
文章總體寫的面面俱到,但是有沒有到深入到什么,給人的感覺是我看了,但是貌似很快又會忘掉。為啥?怎么破?
為啥?沒有抓住重點
怎么破?講核心
spring的核心工作原理就是利用反射機制,完成對象定義的注冊和實例化。所以這里的重點就是:
- 在哪里注冊對象定義?
- 如何注冊?
- 完成注冊后,咋用?(實例化bean)
搞清這三個問題,對spring理解就會有更加宏觀的把握。
第一個問題,主要看createApplicationContext。該方法主要解決spring bean去哪里注冊問題,也就是解決容器問題。beanFactory是最頂級的容器抽象, DefaultListableBeanFactory是其具體的實現(xiàn)。
第二個問題, 主要看refreshContext。調(diào)用到的AbstractApplicationContext.refresh()里的invokeBeanFactoryPostProcessors(beanFactory)需要重點關注一下,因為它主要完成spring 環(huán)境里包括我們代碼里定義的bean的定義的注冊
第三個問題,可以給AbstractBeanFactory.doGetBean打個斷點,看一下bean的實例化是怎么弄的
最后,為了檢測自己的理解,寫幾個小demo,包括但不限于以下:
- 自定義的ApplicationListener
- 自定義的BeanFactoryPostProcessor
- 自定義的BeanPostProcessor
。。。
就這么多
Spring Boot 2.x 啟動全過程源碼分析原創(chuàng): 不羈碼農(nóng) Java技術棧原文地址: https://mp.weixin.qq.com/s?__biz=MzI3ODcxMzQzMw==&mid=2247486661&...
專門注冊了簡書賬號過來評論這篇文章。
文章總體寫的面面俱到,但是有沒有到深入到什么,給人的感覺是我看了,但是貌似很快又會忘掉。為啥?怎么破?
為啥?沒有抓住重點
怎么破?講核心
spring的核心工作原理就是利用反射機制,完成對象(bean)的注冊和實例化。所以這里的重點就是:
- 在哪里注冊對象定義?
- 如何注冊?
- 如何完后,咋用?(實例化bean)
搞清這兩個問題,對spring理解就會有更加宏觀的把握。
第一個問題,主要看createApplicationContext。該方法主要解決spring bean去哪里注冊問題,也就是解決容器問題。beanFactory是最頂級的容器抽象, DefaultListableBeanFactory是其具體的實現(xiàn)。
第二個問題, 主要看refreshContext。調(diào)用到的AbstractApplicationContext.refresh()里的invokeBeanFactoryPostProcessors(beanFactory)需要重點關注一下,因為它主要完成spring 環(huán)境里包括我們代碼里定義的bean的定義的注冊
第三個問題,可以給AbstractBeanFactory.doGetBean打個斷點,看一下bean的實例化是怎么弄的
最后,為了檢測自己的理解,寫幾個小demo,包括但不限于以下:
- 自定義的ApplicationListener
- 自定義的BeanFactoryPostProcessor
- 自定義的BeanPostProcessor
。。。
就這么多
Spring Boot 啟動過程分析1. Spring Boot 入口——main方法 從上面代碼可以看出,Annotation定義(@SpringBootApplication)和類定義(SpringAppl...