Spring学习笔记(二)Bean的作用域

来源:互联网 发布:不可抗力网络剧 编辑:程序博客网 时间:2024/05/16 02:09

  所有的Spring Bean默认都是单例。当容器分配一个Bean时(不论是通过装配还是调用容器的getBean()方法),它总是返回Bean的同一个实例。

  当我们要求每次请求时都获得唯一的bean实例(比如车站的车票,每个人都必须给予一张不同的车票,不能所有人都用同一张车票),那如何覆盖Spring默认的单例配置呢?

  我们可以通过修改Bean的scope属性来实现。

   Spring提供的几个作用域选项,如下:

      1.singleton  在每一个Spring容器中,一个Bean定义只有一个对象实例(默认)。

       2.prototype  允许Bean的定义可以被实例化任意次(每次调用都创建一个实例)

       3.request  在一次http请求中,每个Bean定义对应一个实例。该作用域仅在基于web的Spring上下文(例如:Spring  MVC)中才有效。

       4.session  在一个http seyssion中,每个bean定义对应一个实例。该作用域仅在基于web的Spring上下文(例如:Spring  MVC)中才有效。

       5.global-session 在一个全局Http Session中,每个Bean定义一个对应一个实例。该作用域仅在Portlet上下文中才有效。


初始化和销毁Bean

    为Bean定义初始化和销毁操作,只需要使用init-method 和 destory-method参数来配置<bean>元素。init-method属性指定了在初始化Bean时要调用的方法。类似地,destory-method属性指定了Bean从容器移除之前要调用的方法。

0 0