• Spring bean


    Spring中的bean默认都是单例的

    一共有5种作用域:singleton、prototype、request、session和global session

    设置方式只需要在形如:<bean id="XXX" class="com.mori.XXX" scope="singleton" />

    1、Singleton是单例类型,就是在创建起容器时就同时自动创建了一个bean的对象,不管你是否使用,他都存在了,每次获取到的对象都是同一个对象。

    2、Prototype是原型类型,它在我们创建容器的时候并没有实例化,而是当我们获取bean的时候才会去创建一个对象,而且我们每次获取到的对象都不是同一个对象。

      另外三种作用域仅在基于web的应用中使用,作用域自行体会

    我们可以指定bean节点的lazy-init="true"来延迟初始化bean,这时候,只有在第一次获取bean时才会初始化bean,即第一次请求该bean时才初始化。
    形如:<bean id="XXX" class="com.mori.XXX" scope="singleton" lazy-init="true" />

    在单例模式中,Spring在创建对象的时候先调用构造器,然后调用init-method属性值中所指定的方法。对象在被销毁的时候,会调用destroy-method属性值中所指定的方法。
    形如:<bean id="XXX" class="com.mori.XXX" scope="singleton" init-method="init" destroy-method="destory" lazy-init="true" /> init以及destory都是这个bean中的方法。
    在非单例模式中,请求每一个prototype的bean时,Spring容器都会调用其构造器创建这个对象,然后调用init-method属性值中所指定的方法。对象销毁的时候,Spring容器不会帮我们调用任何方法,因为是非单例,这个类型的对象有很多个,Spring容器一旦把这个对象交给你之后,就不再管理这个对象了。

    Bean的生命周期:
    1、Spring对bean进行实例化,默认bean是单例
    2、Spring对bean进行依赖注入
    3、检查该bean是不是实现了指定的接口,有spring就去调用这些实现的方法,包括上面说的init-method属性声明
    4、此时bean已经准备就绪,可以被应用程序使用了,他们将一直驻留在应用上下文中
    5、销毁时也是看有没有实现指定销毁接口,或者destroy-method属性声明

    参考:https://blog.csdn.net/fuzhongmin05/article/details/73389779

  • 相关阅读:
    结对编程实验(1李晓冬13、张金伟118)
    软件工程网络15个人阅读2(201521123118张金伟)
    软件工程网络15个人作业阅读1(201521123118 张金伟)
    《Java课程设计》
    201521123118《java与程序设计》第14周学习总结
    201521123118《程序与设计》第13周学习总结
    201521123118《程序与设计》第12周学习总结
    网络15软工个人作业5——软件工程总结
    个人作业4——alpha阶段个人总结
    软工网络15个人作业3——案例分析
  • 原文地址:https://www.cnblogs.com/LinsenLi/p/9857827.html
Copyright © 2020-2023  润新知