Java干货小知识,spring 支持几种 bean 的作用域?_java自学_java相关资讯_成都java培训机构

Java干货小知识,spring 支持几种 bean 的作用域?

  • 作者:创始人
  • 发表时间:2021-12-22 09:53:00

singleton:单例模式,在整个springIoC容器中,使用singleton定义的Bean将只有一个例子。

prototype:原型模式,每次通过容器的getbean获得protype定义的bean,都会产生一个新的bean实例。

equest:使用request定义的Bean每个HTTP请求都会产生一个新的例子,即每个HTTP请求都会产生不同的Bean例子。只有在Web应用程序中使用Spring时,该功能域才有效。

session:使用session定义的Bean豆浆,为每次HTTPSesion生成一个新的例子。同样,只有在Web应用程序中使用spring时,该功能域才能有效。

globalsession:使用session定义的bean,在每个全球HTTPSesion中都会产生一个新的例子。典型的情况下,使用portletcontext是有效的。同样,只有在web应用中使用spring时,该功能域才有效。

Java干货小知识,spring 支持几种 bean 的作用域?

其中,singleton和protype是常用的两个功能域。对于singleton功能域的bean,每次要求bean都会得到同样的例子。容器负责跟踪bean实例的状态,维护bean实例的生命周期行为;如果一个bean被设置为protype功能域,每次程序要求idbean时,spring都会创建一个bean实例,然后返回程序。在这种情况下,spring容器只使用new关键字创建bean实例。一旦创建成功,容器将不跟踪实例,也不会维持bean实例的状态。

如果Bean的作用域没有指定,Spring默认使用Singleton作用域。Java在创建Java实例时需要申请内存;在销毁实例时,需要完成垃圾回收,这将导致系统成本的增加。因此,创建Protype作用域Bean的销毁成本相对较高。一旦Bean实例成功创建,就可以重复使用。因此,尽量避免将Bean设置为Protype作用域,除非有必要。

spring 支持几种 bean 的作用域?关注知了堂成都Java培训带你了解更多Java相关问题和相关知识。