spring 第三章 bean 讲解

作用域和生命周期

bean 的生命周期有六类

singleton(单例)   上下文只会创建一个实例                                                                 
prototype(多例)   根据需要创建多个
request  识别到http请求,每个http请求创建一个实例
session bean 的生命周期限定在http session 中
application   整个servletContext 上下文创建一个实例
websocket   每个websocket 连接创建一个

bean 单例作用域引入多例

  单例在初始化时候已经需要依赖多例,此时prototype 创建一个实例,这个多例的实例就是唯一提供个这个单例。总结:单例引入多例,多例只会创建一个实例。

  若想要单例运行期重复获得多例,则不能通过注入的方式,可以通过上下文实时获取多例。

bean循环依赖

  构造函数注入不支持循环依赖,但是用setter 属性注入支持。

  原因:属性注入,bean 实例化时分两步:先实例化当前对象,然后再实例化注入的属性。当有循环依赖时候先把当前对象实例化,当属性再实例化时从实例换从从获取实例即可。

 

  

  

原文地址:https://www.cnblogs.com/blogxiao/p/14411033.html