目的:考察对loC的理解
BeanFactory:Bean工厂==>loC容器
BeanDefinition ===> Bean定义
BeanDefinitionRegistry ==> BeanDefinition 和 BeanFactory的关联
ApplicationContext 应用上下文
ApplicationContext ac = new ClasspathXmlApplicationContext(xxx.xml);
BeanFactory可以理解为含有bean集合的工厂类。BeanFactory包含了种bean的定义,以便在接收到客户端请求时将对应的bean实例化。
BeanFactory还能在实例化对象的时生成协作类之间的关系。此举将bean自身与bean客户端的配置中解放出来。BeanFactory还包含了bean生命周期的控制,调用客户端的初始化方法(initializationmethods)和销毁方法(destructionmethods)。
从表面上看,applicationcontext如同beanfactory一样具有bean定义、bean关联关系的设置,根据请求分发bean的功能。但applicationcontext在此基础上还提供了其他的功能。
1.提供了支持国际化的文本消息
2.统一的资源文件读取方式
3.已在监听器中注册的bean的事件
以下是三种较常见的ApplicationContext实现方式:
1、ClassPathXmlApplicationContext:从classpath的XML配置文件中读取上下文,并生成上下文定义。应用程序上下文从程序环境变量中ApplicationContextcontext=newClassPathXmlApplicationContext(“bean.xml”);
2、FileSystemXmlApplicationContext:由文件系统中的XML配置文件读取上下文。ApplicationContextcontext=newFileSystemXmlApplicationContext(“bean.xml”);
3、XmlWebApplicationContext:由Web应用的XML文件读取上下文。
4.AnnotationConfigApplicationContext(基于Java配置启动容器)