Spring Bean的作用域

Bean 的作用域分类

singleton

单例模式(默认):在每个Spring IOC 容器中,一个Bean 定义对应一个对象实例。

prototype

一个Bean 定义对应多个对象实例。

request

在一次http请求中,一个bean定义对应一个实例,即每次http 请求会有各自的bean实例,
它们依据某个bean 定义创建而成,该作用域仅基于web的Spring ApplicationContext的情况下有效。

session

在一个Http Session中,一个bean定义对应一个实例。该作用域仅基于web的Spring 	ApplicationContext的情况下有效。

global session

在全局的Http Session 中,一个bean定义对应一个实例。该作用域仅基于portlet context 的
时候有效,该作用域仅基于web的SpringApplicationContext 的情况下有效。

Bean 的执行时机

singleton 的执行时机

容器初始化时,就会创建对象,以后再getBean() 时不再创建新对象。singleton 也支持延迟加载,在第一次使用时产生。使用 @Lazy 在注解了@Bean的方法上注解,便可以开启延迟加载。使用示例:


   @Bean(value = "stu",initMethod = "myInit",destroyMethod = "myDestroy")
   @Scope(scopeName="singleton")
   @Lazy
   public Student student() {
       return new Student();
   }
    

prototype 的执行时机

容器在初始化时,不会创建对象,只是在每次使用时创建对象,并且每次getBean() 都会创建一个新的对象。

如何设置Bean的作用域

xml 方式


  <bean id="xxx" class="xxx" scope="prototype"/>
  

注解方式


@Scope(value="prototype")

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值