2.Bean的实例化方式 2.1无参数构造 2.2静态工厂方法 2.3实例工厂方法 3.Bean的作用域 4.Bean的生命周期 提示:点击文章底部的“阅读原文”查看以前所有的笔记 ApplicationContext 它是扩展 BeanFactory 接口。 BeanFactory 它采取延迟加载的方案,只有真正在 getBean 时才会实例化 Bean
在开发中我们一般使用的是 ApplicationContext,真正使用的是其实现类, FileSystemXmlAppliCationContext 根据文件路径获取 ClassPathXmlApplicationContext 根据类路径获取 AppliCationContext它会在配置文件加载时,就会初始化Bean,并且ApplicationContext 它 提 供 不 同 的 应 用 层 的 Context 实现。例如在 web 开 发 中 可 以 使 用 WebApplicationContext. 2.1. 无参数构造 对于这种方式,注意 Bean 类中必须提供无参数构造。 2.2. 静态工厂方法 需要创建一个工厂类,在工厂类中提供一个 static 返回 bean 对象的方法就可以。 2.3. 实例工厂方法 需要创建一个工厂类,在工厂类中提供一个非 static 的创建 bean 对象的方法,在配置文件 中需要将工厂配置,还需要配置 bean
在 bean 声明时它有一个 scope 属性,它是用于描述 bean 的作用域。 可取值有:
在开如常用的值是 singleton 与 prototype 1. instantiate bean 对象实例化 2. populate properties 封装属性
对于 bean 的生命周期方法: 第五步与第八步 可以针对指定的 Bean 进行功能增强,这时一般会使用动态代理. 第六步与第十步:通过实现指定的接口来完成 init 与 destroy 操作 但是在开发中一般不使用第 6 步与第 10 步,原因是我们可以使用第 7 步与第 11 步来完成。 第 7 步与第 11 步的初始化与销毁操作它无耦合,推荐使用的。但是必须在配置文件中指定 初始化与销毁的方法
总结:
注意:destroy-method 只对 scope=singleTon 有效果。 |
|