java面试题网

普通会员

483

帖子

9

回复

187

积分

楼主
发表于 2019-08-26 15:24:39 | 查看: 5064| 回复: 0

Bean 的装配

Bean 的装配

举例:beanAssemble 项目

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

默认装配方式(掌握)

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

Bean 的装配_www.wityx.com

Bean 的装配_www.wityx.com

Bean 的装配_www.wityx.com

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

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

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

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

(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 的装配_www.wityx.com

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

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

举例:

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

Bean 的装配_www.wityx.com

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

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

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

Bean 的装配_www.wityx.com

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

(1)Bean 为 singleton,即单例

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

Bean 的装配_www.wityx.com


文章来自www.wityx.com,转载请注明出处!原文地址http://www.wityx.com/post/1232_1_1.html


java面试题交流群:327440556      阿里云产品2000元通用优惠券限时领

您需要登录后才可以回帖 登录 | 立即注册

java面试题网www.wuliaokankan.cnjava建站系统提供技术支持V2.1 网站地图 © 2016-2018