一、IOC接口設(shè)計(jì)
IOC容器設(shè)計(jì)的源碼主要在spring-beans.jar、spring-context.jar這兩個(gè)包中。IOC容器主要接口設(shè)計(jì)如下:
這里的接口設(shè)計(jì)有兩條主線:BeanFactory和ApplicationContext
1、BeanFactory-->HierarchicalBeanFactory-->ConfigurableBeanFactory:這是BeanFactory的設(shè)計(jì)路線,BeanFactory定義了基本的IOC容器規(guī)范,HierarchicalBeanFactory中增加了getParentBeanFactory方法,具備了雙親IOC容器的管理功能;ConfigurableBeanFactory中新增一些配置功能。
2、ApplicationContext應(yīng)用上下文接口:繼承了HierarchicalBeanFactory、ListableBeanFactory等BeanFactory的子接口,這條分支使得ApplicationContext具備了IOC容器的基本功能;在繼承MessageSource、ApplicationEventPublisher等接口的時(shí)候,使得ApplicationContext這個(gè)簡(jiǎn)單的IOC容器添加了許多高級(jí)容器的特性。ApplicationContext的子接口有ConfigurableApplicationContext以及在WEB環(huán)境下使用的WebApplicationContext。