Spring Bean的作用域之间有什么区别?

Spring Bean的作用域之间有什么区别?

​ 在Spring中,可以在元素的scope属性里设置bean的作用域,以决定这个bean是单例的还是多例的。

​ 默认情况下,Spring只为每个在IOC容器里声明的bean创建唯一一个实例,整个IOC容器范围内都能共享该实例:所有后续的getBean()调用和bean引用都将返回这个唯一的bean实例。该作用域称为singleton,它是bean的默认作用域。


作用域的类别跟说明
  • singleton:在SpringIOC容器中仅存在一个Bean实例,Bean以单实例的方式存在
  • prototype:每次调用getBean()时都会返回一个新的实例
  • request:每次HTTP请求都会创建一个新的Bean,该作用域仅适用于WebApplicationContext环境
  • session:同一个HTTP Session共享一个Bean,不同的HTTP Session使用不同的Bean,该作用域仅适用于WebApplicationContext环境

简述

bean的作用域:可以通过元素的scope属性来指定bean作用域

  • singleton:默认值。当IOC容器一创建就会创建bean的实例,而且是单例的,每次得到的都是同一个
  • prototype:原型的。当IOC容器一创建不再实例化该bean,每次调用getBean方法时再实例化该bean,而且每调用
  • request:每次请求实例化一个bean
  • session:在一次会话中共享一个bean

你可能感兴趣的:(Java面试,spring,bean,作用域,面试)