spring的单例模式

Spring框架有两个特性一个是IOC,另一个就是AOP。

1.其中我对IOC特性的理解就是Spring能够将以前手动的创建对象交由Spring容器来管理,就是实现创建对象,并管理对象之间的关系,创建Bean的时候默认的情况下都是单例模式的,也可以通过配置文件修改:

需要如下配置:
<bean id="user" class="..." singleton="false"/>

singleton就是配置这个bean是否是单例的,如果不写,就是默认值true。

2.Bean的作用域:

Bean的作用域可以通过Bean标签的scope属性进行设置,包括以下几种:
scope="singleton",那么该Bean是单例,任何人获取该Bean实例的都为同一个实例,这个是默认情况下;
scope="prototype",任何一个实例都是新的实例;
scope="request",在WEB应用程序中,每一个实例的作用域都为request范围;
scope="session",在WEB应用程序中,每一个实例的作用域都为session范围;

注意:在默认情况下,Bean实例在被Spring容器初始化的时候,就会被实例化,默认调用无参数的构造方法。在其它情况下,Bean将会在获取实例的时候才会被实例化。

3.Bean可以通过指定属性init-method指定初始化后执行的方法,以及通过指定属性destroy-method销毁时执行的方法。

语法:<bean ....   destroy-method="销毁时调用的方法名" init-method="初始化后执行的方法名"/>

相关推荐