不同模式主要不同的是 ==类和实例数量之间的关系==
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:很少使用。