Spring Bean作用域 (面试题)

面试题:

  1.Spring Bean默认作用域是单例还是多例?

  2.Spring Bean作用域有几种?

 

Bean 作用域

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

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

1.结论:所以Spring Bean的作用域默认是单例的

类别

说明

singleton

在SpringIoc容器中仅存在一个bean实例,bean以单实例方式存在

prototype

每次调用getbean() 都将返回一个新的实例

request

每次Http请求都会创建一个新的bean,该作用域仅适合于WebApplicationContext 环境

session

同一个Http Session 共享一个bean,不同的Http Session使用不同的bean.该作用域仅适合 WebApplicationContext 环境

 

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

2.结论:Spring Bean有4种作用域

你可能感兴趣的:(Spring,spring,java,bean)