单例和原型bean范围之间的区别。
Spring框架支持五种类型的bean作用域-
辛格尔顿
原型
请求
届会
全球会议
根据春季文件-
Singleton-每个SpringIoC容器返回一个bean实例。该单个实例存储在此类单例bean的高速缓存中,并且对该命名bean的所有后续请求和引用都返回该高速缓存的对象。
Spring单例与Java单例不同。在Java中,每个JVM创建一个bean实例,而在春季,每个应用程序上下文创建一个bean实例。
道具类型-
根据春季文件-
Spring不能管理原型bean的完整生命周期:容器实例化,配置或组装原型对象,然后将其交给客户端,而没有该原型实例的进一步记录。因此,尽管在不考虑范围的情况下在所有对象上都调用了初始化生命周期回调方法,但对于原型,则不会调用已配置的销毁生命周期回调。客户端代码必须清除原型作用域内的对象并释放原型Bean所拥有的昂贵资源。
X()
每次都会使用new单例和原型示例
<bean id="xyzService" class="com.xyz.XyzService" scope="singleton"/> <bean id="xyzService" class="com.xyz.XyzService" scope="prototype"/>