zoukankan      html  css  js  c++  java
  • Spring的bean作用域singleton prototype

    在spring中,组成应用的主体以及由Spring IoC容器所管理的对象称之为bean。换言之,bean就是由Spring容器初始化、装配及被管理的对象。
      
    singleton作用域:当Spring中一个bean的作用域为singleton时,那么Spring IoC容器中只会存在一个共享的该bean实例,并且所有对该bean的引用,只要id与该bean                            定期相匹配,则只会返回bean的单一实例。
    Spring容器的上下文中只有一个bean的实例对象,即容器的getBean()方法或将其注入到另一个bean中只能返回一个唯一的实例对象。在开发企业级的项目时经常需要singleton模式。在设置singleton作用域时,一下3中方式:
    <bean id="text" class="com.mommon.Text"/>
    <bean id="text" class="com.mommon.Text" singleton="true"/>
    <bean id="text" class="com.mommon.Text" scope="singleton"/>
     
    prototype作用域:prototpye作用域的bean会导致在每次对该bean请求(将其注入到另一个bean中,或者调用容器的getBean()方法)时都会创建一个新的bean实例。但是在prototpye作用域中当bean被容器创建完毕,并且将实例对象返回给请求方之后,容器就不再拥有当前返回的引用,容器将实例对象生命周期的管理工作交给请求方负责,所以在客户端代码中必须使用bean的后置处理器清除prototype作用域的bean,但是后置处理器持有要被清除的bean的引用。设置prototype作用域:<bean id="text" class="com.mommon.Text" singleton="false"/>
          <bean id="text" class="com.mommon.Text" scope="prototype"/>
     
    技巧:对所有有状态的bean应该使用prototype作用域,对无状态的bean使用singleton作用域
     
    注意:通常情况下,DAO不会被配置成prototype,因为一个典型的DAO不会持有任何回话状态,因此应该使用singleton作用域。
  • 相关阅读:
    Maven入门详解
    (二)从分布式一致性谈到CAP理论、BASE理论
    (一)从集中式到分布式
    四种MySQL存储引擎
    日期函数、时间函数总结(MySQL 5.X)
    SQL函数说明大全
    Java虚拟机1:什么是Java
    Java设计模式1:设计模式概论
    Linux概述
    Android 使用SharedPreference来进行软件配置的存取
  • 原文地址:https://www.cnblogs.com/xiaochaozi/p/3365047.html
Copyright © 2011-2022 走看看