Spring基础-005-Bean的作用域

65 阅读1分钟

不同模式主要不同的是 ==类和实例数量之间的关系==

5.1 singleton

默认情况下 , Spring 的IoC容器创建的Bean对象是单例的,也就是

==这个类对象有且最多只能创建一个实例==

同时可以得知,Bean对象的创建是在初始化Spring上下文的时候完成的

5.2prototype

==多例形式==

每次执行getBean() 方法就会再创建一个Bean对象出来

使用:

<bean id="sb" class="com.powernode.spring6.beans.SpringBean" scope="prototype" />

在bean的属性设置 scope 中设置为 prototype

5.3其他scope

scope一共有8个选项

  • singleton:默认的,单例。
  • prototype:原型。每调用一次getBean()方法则获取一个新的Bean对象。或每次注入的时候都是新对象。
  • request:一个请求对应一个Bean。仅限于在WEB应用中使用
  • session:一个会话对应一个Bean。仅限于在WEB应用中使用
  • global session:portlet应用中专用的。如果在Servlet的WEB应用中使用global session的话,和session一个效果。(portlet和servlet都是规范。servlet运行在servlet容器中,例如Tomcat。portlet运行在portlet容器中。)
  • application:一个应用对应一个Bean。仅限于在WEB应用中使用。
  • websocket:一个websocket生命周期对应一个Bean。仅限于在WEB应用中使用。
  • 自定义scope:很少使用。