Spring IoC Container and Beans 的介绍
Inversion of Control(IOC 就是控制反转)它是对象定义它们依赖的一个过程
对象定义它们依赖仅仅通过构造函数的参数,工厂方法的参数、构造或从工厂方法返回对象实例后,在对象实例上设置的属性
BeanFactory接口提供了一种高级配置机制,它能够管理任何类型的对象
ApplicationContext 是 BeanFactory 的子类 ,它代表了 Spring IoC container ,负责实例化、配置和组装bean
bean 是对象,用于构成应用程序主干并被 Spring IoC container 管理
多个bean之间的关系 可以通过 container 中的 configuration metadata 体现
Container 概述
Container 通过读取 configuration metadata 获得关于要实例化、配置和组装哪些对象的指导
Container 可以让你决定组成应用程序的对象并且可以让这些对象之间建立丰富的相互依赖关系
configuration metadata 可以用 XML, Java annotations, 或 Java 代码表示
初始化 Container 的方式就是让Container从各种外部资源加载 configuration metadata (其实就是读取配置文件呗)如下
ApplicationContext context = new ClassPathXmlApplicationContext("services.xml", "daos.xml");
你的应用程序的类结合 configuration metadata ,在 ApplicationContext 被初始化之后 ,就有了真正的可配置和可执行的系统或应用了
Bean 的概述
IoC Container 管理了一个或多个 bean , beans 被你提供 configuration metadata 的 container 所创造
在Container本身内,这些bean定义表示为BeanDefinition对象
BeanDefinition对象包含了你如何创建一个特殊的bean的信息
BeanDefinition对象里面的 metadata 转换为构成每个bean定义的一组属性,metadata 如包限定的类名,指向另一个bean的引用等
getBeanFactory()方法允许在 Container 外部创建的现有对象