Spring源码分析 待续

来源:互联网 发布:java web编程技术 pdf 编辑:程序博客网 时间:2024/06/06 06:56

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接口设计图

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类图



0 0