关于Bean的理解
spirng伟大之处在于自定义了一个Bean的概念,在这个概念拓展出来了一套类的治理理念,包括Bean的生命周期,IOC,AOP等一系列概念,而spring想接管我们业务类的治理,第一步就是扫描出包下所有的业务类,早期spring是通过xml配置,后期就是通过注解方式配置。
BeanDefinition的作用
spring会在启动的时候,把所有类的类全名,类的配置属性都会扫描到内存中,以方便后面实例化对象的时候不用每次到xml文件里面进行IO读取,这一步也就是传说中的xml解析,解析到的每一个Bean的配置都会保存到BeanDefinition中,里面保存了类全名,类字节码,初始化方法等信息。
从refresh方法开始
业务类概念换成spring中的Bean概念,这得从refresh方法开始看起
1.入口点obtainFreshBeanFactory()
2.obtainFreshBeanFactory()调用了refreshBeanFactory()
3.refreshBeanFactory()调用了loadBeanDefinitions(beanFactory)