第1章 Linux 简介
第2章 Linux 命令
第3章 开发相关

Bean 的装配

 

举例:beanAssemble 项目

Bean 的装配,即 Bean 对象的创建。容器根据代码要求创建 Bean 对象后再传递给代码 的过程,称为 Bean 的装配。

 

默认装配方式(掌握)

 

代码通过 getBean()方式从容器获取指定的 Bean 实例,容器首先会调用 Bean 类的无参 构造器,创建空值的实例对象。

 

 

 

容器中 Bean 的作用域(掌握)

 

当通过 Spring 容器创建一个 Bean 实例时,不仅可以完成 Bean 的实例化,还可以通过 scope 属性,为 Bean 指定特定的作用域。Spring 支持 5 种作用域。

(1)singleton:单态模式。即在整个 Spring 容器中,使用 singleton 定义的 Bean 将是单例的, 只有一个实例。默认为单态的。

(2)prototype:原型模式。即每次使用 getBean 方法获取的同一个<bean />的实例都是一个 新的实例。

(3)request:对于每次 HTTP 请求,都将会产生一个不同的 Bean 实例。

(4)session:对于每个不同的 HTTP session,都将产生一个不同的 Bean 实例。

注意:

(1)对于 scope 的值 request、session 只有在 Web 应用中使用 Spring 时,该作用域才有效。

(2)对于 scope 为 singleton 的单例模式,该 Bean 是在容器被创建时即被装配好了

(3)对于 scope 为 prototype 的原型模式,Bean 实例是在代码中使用该 Bean 实例时才进行 装配的

举例:

 

 

定制 Bean 的生命始末(掌握)

 

可以为 Bean 定制初始化后的生命行为,也可以为 Bean 定制销毁前的生命行为。

举例:

首先,这些方法需要在 Bean 类中事先定义好:是方法名随意的 public void 方法。

 

 

其次,在配置文件的<bean/>标签中增加如下属性:

init-method:指定初始化方法的方法名

destroy-method:指定销毁方法的方法名

 

 

注意,若要看到 Bean 的 destroy-method 的执行结果,需要满足两个条件:

(1)Bean 为 singleton,即单例

(2)要确保容器关闭。接口 ApplicationContext 没有 close()方法,但其实现类有。所以,可以将 ApplicationContext 强转为其实现类对象,或直接创建的就是实现类对象。

 

全部教程