Spring源码分析 待续

 2019-10-17 21:48  阅读(953)
文章分类:Spring boot

1.IOC接口设计

1.IOC接口设计以BeanFactory和ApplicationContext为核心,分两设计路线

1.1从BeanFactory到ConfigurableListableBeanFactory(Beans jar包)

1.2以ApplicationContext为核心接口,从BeanFactory到ApplicationContext,再到ConfigurableApplicationContext(Context jar包),并且为了可以在Web环境下使用,实现了WebApplicationContext。

2.BeanFactory是一种最基本的IOC容器,包含了IOC最基本的功能。

3.ApplicationContext通过继承MessageSource、ResourcePatternResolver、ApplicationEventPublisher、EnvironmentCapable接口,在BeanFactory简单的IOC容器基础上添加了许多高级容器的特性。也就是说基本上ApplicationContext除了包含IOC基本的功能外,还附加了更高级的功能,并且更好扩展性更强。应用中可以ApplicationContext使用为主。

4.如下图是IOC接口设计图
20191017100172\_1.png

2.BeanFactory

主要的BeanFactory有XmlBeanFactory(Spring建议弃用,可以使用DefaultListableBeanFactory编程实现)和DefaultListableBeanFactory(重要,后续ApplicationContext的内置BeanFactory对象是这个类)。

IOC容器实现的三个关键类:Resource、BeanFactory、BeanDefinitionReader。

IOC编程式实现大致步骤如下(即XmlBeanFactory的实现方式)

  1. ClassPathResource res = newClassPathResource(“beans.xml”);

2.DefaultListableBeanFactory factory = new DefaultListableBeanFactory();

3.XmlBeanDefinitionReader reader = newXmlBeanDefinitionReader(fatory);

4.reader.loadBeanDefinitions(res);

如下图是BeanFactory类图

20191017100172\_2.png


来源:[]()

点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> Spring源码分析 待续

相关推荐