Spring boot 类加载机制
本文于 1632 天之前发表,文中内容可能已经过时。
spring boot的类加载机制其实和Spring 没有什么不同,如果有什么不同的,以前需要写一堆的xml配置文件来来申明类和类之间的关系,现在基本上不需要写这么多配置文件了。这说明Spring boot在Spring上还是做了优化了,能让程序员更好更快的开发自己的程序。
那么主要是那个变化省去了我们可以不用去写xml的麻烦。
扫描 -> 注册 - 生成bean
扫描注册类的过程如下:
获取bean的过程
核心类
- BeanDefinition: Bean的定义类, 和xml里的配置一一对应;
- BeanFacotry: Bean工厂接口;
- BeanDefinitionRegistry: BeanDefinition的注册定义接口;
- DefaultListableBeanFactory: ListableBeanFactory(extends BeanFactory)和BeanDefinitionRegistry的默认实现,提供BeanDefinition注册功能;
- ApplicationContext: Spring上下文环境;
- AbstractApplicationContext: 执行refresh()方法;
- AbstractRefreshableApplicationContext: 提供抽象方法loadBeanDefinitions(DefaultListableBeanFactory beanFactory) 用于加载BeanDefinition.