Spring加載過程分為以下幾個階段:
- 資源定位:Spring框架會根據(jù)配置文件或注解掃描的方式,定位到配置文件或類文件的位置。
- 資源加載:Spring框架會加載配置文件或類文件,并將其轉(zhuǎn)化為內(nèi)部數(shù)據(jù)結(jié)構(gòu)表示。
- 配置解析:Spring框架會解析配置文件或類文件,將配置信息轉(zhuǎn)化為相應(yīng)的BeanDefinition對象。
- Bean注冊:Spring框架會將BeanDefinition對象注冊到BeanFactory中,以便后續(xù)使用。
- Bean實例化:Spring框架會根據(jù)BeanDefinition對象的信息,通過反射機制實例化相應(yīng)的Bean對象。
- 屬性注入:Spring框架會將BeanDefinition對象中的屬性值注入到Bean對象中,可以使用構(gòu)造函數(shù)注入、Setter方法注入等方式。
- 初始化方法調(diào)用:Spring框架會調(diào)用Bean對象的初始化方法,可以使用注解@PostConstruct或?qū)崿F(xiàn)InitializingBean接口的方法。
- Bean后處理:Spring框架會對Bean進行一些額外的處理,如Bean的代理、AOP切面等。
- 完成加載:Spring框架加載過程結(jié)束,可以使用已加載的Bean對象。
初始化方法是在Bean對象實例化和屬性注入完成后調(diào)用的方法,用于完成Bean的一些初始化工作。可以通過注解@PostConstruct指定初始化方法,也可以通過實現(xiàn)InitializingBean接口的afterPropertiesSet()方法指定初始化邏輯。在初始化方法中,可以進行一些必要的初始化操作,如數(shù)據(jù)庫連接、緩存初始化、資源加載等。