4, 请解释下 Spring 框架中的 IoC?
Spring 中的 org.springframework.beans 包和 org.springframework.context 包构成了 Spring 框架 IoC 容器的基础.
BeanFactory 接口提供了一个先进的配置机制, 使得任何类型的对象的配置成为可能. ApplicationContex 接口对 BeanFactory(是一个子接口)进行了扩展, 在 BeanFactory 的基础上添加了其他功能, 比如与 Spring 的 AOP 更容易集成, 也提供了处理 message resource 的机制(用于国际化), 事件传播以及应用层的特别配置, 比如针对 web 应用的 WebApplicationContext.
org.springframework.beans.factory.BeanFactory 是 Spring IoC 容器的具体实现, 用来包装和管理前面提到的各种 bean.BeanFactory 接口是 Spring IoC 容器的核心接口.
5,BeanFactory 和 ApplicationContext 有什么区别?
BeanFactory 可以理解为含有 bean 集合的工厂类. BeanFactory 包含了种 bean 的定义, 以便在接收到客户端请求时将对应的 bean 实例化.
BeanFactory 还能在实例化对象的时生成协作类之间的关系. 此举将 bean 自身与 bean 客户端的配置中解放出来. BeanFactory 还包含了 bean 生命周期的控制, 调用客户端的初始化方法 (initialization methods) 和销毁方法(destruction methods).
从表面上看, application context 如同 bean factory 一样具有 bean 定义, bean 关联关系的设置, 根据请求分发 bean 的功能. 但 application context 在此基础上还提供了其他的功能.
提供了支持国际化的文本消息
统一的资源文件读取方式
已在监听器中注册的 bean 的事件
以下是三种较常见的 ApplicationContext 实现方式:
1,ClassPathXmlApplicationContext: 从 classpath 的 XML 配置文件中读取上下文, 并生成上下文定义. 应用程序上下文从程序环境变量中取得.
ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
2,FileSystemXmlApplicationContext : 由文件系统中的 XML 配置文件读取上下文.
ApplicationContext context = new FileSystemXmlApplicationContext("bean.xml");
3,XmlWebApplicationContext: 由 Web 应用的 XML 文件读取上下文.
来源: http://www.bubuko.com/infodetail-2770316.html