Spring Ioc概述
Spring 用XML文件,去描述一个POJO的属性。
比如,有以下两个POJO,果汁制造器2,果汁原料清单; JuiceMaker2 、 Source
我们可以用一个Spring中的XML文件,去描述上面两个类。
注意,这里的XML文件中每个<bean />都是一个类,而其中的<property /> 代表成员变量。
测试代码: 注意,ctx是下文中会提到的 ApplicationContext 的对象。这里只是示意代码
Spring Ioc容器
比较重要的两个是:最底层的BeanFactory 和 最常用的 ApplicationContext (主要是它的子类 ClassPathXmlApplicationContext ,一个用XML的Spring配置文件,用来定义Bean,使得Spring IoC容器在初始化时可以找到他们)
注意,这里的 makeJuice方法,得去对应的POJO JuiceMaker2中才可以知道。
Spring IoC容器 管理Bean的步骤(定义Bean、初始化Bean)
Bean的定义在Spring IoC容器中分为3步
1、Resouce定位
根据开发者配置的位置,进行XML文件的定位(也可以使用注解方式开发)
2、BeanDefinition的载入
把定位到的信息,保存到BeanDefinition中
3、BeanDefinition的注册
把BeanDefinition的信息发布到Spring的容器中
注意到此为止,都没有创建Bean的对象实例。
——————————————————————————
接下来才是初始化 和 依赖注入,这涉及到Spring Bean的生命周期的概念,了解生命周期,主要是为了将来的AOP,如何在初始化和销毁时,加入自定义的方法。
凡是实现BeanPostProcessor接口的实现类X,一般都会放在Spring的xml配置文件的最前面,并且无论将来getBean去创建xml文件中的任何一个Bean实例,类X的Bean都会首先被创建。