您的位置:首页 > 大数据

(五)java深入java虚拟机及大数据笔记库(56)

2018-01-13 10:23 260 查看
    一.  请解释Spring Bean的生命周期?

1 ) . 简述 : SpringBean的生命周期简单易懂

[1]在一个bean实例被初始化时,需要执行一系列的初始化操作以达到可用的状态;

[2]同样,当一个Bean不在被调用时需要进行相关的析构操作,并从bean容器中移除

2 ) . 组成 : 

2.1Spring Bean factory负责管理在spring容器中被创建的bean的生命周期

2.2Bean的生命周期由两组回调方法(call back)方法组成

[1]初始化之后调用的回调函数

[2]销毁之前调用的回调函数

3 ) .  Spring框架提供了四种方式来管理bean的生命周期事件

[1] InitializingBean和DisposableBean回调接口

[2]针对特殊行为的其他Aware接口

[3]Bean配置文件中的Custom init()方法和destroy方法

[4]@PostConstruct和@PreDestroy注解方式

4 ) . 使用customInit()和customDestroy()方法管理bean生命周期的代码样例如下 : 

<beans>

    <bean id="demoBean" class="com.howtodoinjava.task.DemoBean" init-method="customInit" destroy-method="customDestroy"></bean>

</beans>

 

     二. Spring Bean的作用域之间有什么区别?                

1 ) . 简述 : Spring容器中的bean可以分为5个范围,所有的范围名称都是自说明的,但是为了避免混淆,以下是详细说明 : 

1.1 singleton : 是bean中默认范围,此范围确保不管接受到多少请求,每个容器中只有一个bean实例,单例的模式由bean factory自身来维护

2 ) .prototype : 此原型范围与单例范围相反,为每一个bean请求提供一个实例

3 ) . request : 在请求bean范围内会每一个来自客户端的网络请求创建一个实例,在请求完成后,bean会失效并被垃圾回收器回收

4 ) .Session :  与请求范围类似,确保每个Session中有一个bean的实例,在session过期后,bean会随之失效

5 ).global-session : global-session 和Portlet应用相关,当你的应用部署在Portlet容器中工作时,它包含很多portlet;

            若你想要生命让所有的portlet共同全局的存储变量的话,那么这全局变量需要存储在global-session中;

            全局作用域与Servlet中的session作用域效果相同

 

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: