戴着假发的程序员出品
文字说明
看文字嫌累的可以查看后面的视频说明
scop属性用于指定bean的作用域。可以取一下几个值:
singleton:单例模式(默认);
prototype:多例模式;
request:作用于web应用的请求范围;
session:作用于web应用的会话范围
global-session:作用于集群环境的会话范围;
其中使用比较多的是singleton,这个也是默认值。
spring在容器创建的同时就会创建所有scop为singleton的对象,我们从容器中获取同一个singleton对象无论多少次,获取的都是同一个对象。
<!-- 注册accountService -->
<bean id="accountService" scope="singleton" class="com.dk.demo1.service.AccountService">
<!-- 给accountService注入属性accountDAO -->
<property name="accountDAO" ref="accountDAO"/>
</bean>
测试:
//创建spring容器
ApplicationContext ac =
new ClassPathXmlApplicationContext("applicationContext.xml");
AccountService bean1 = (AccountService) ac.getBean("accountService");
AccountService bean2 = (AccountService) ac.getBean("accountService");
bean.save("bean1==bean2-->"+(bean1==bean2));
如果scop配置为prototype,那么spring容器初始化时,不会创建该对象,每次从容器中获取该对象时都会创建一个新的对象返回:
<!-- 注册accountService -->
<bean id="accountService" scope="prototype" class="com.dk.demo1.service.AccountService">
<!-- 给accountService注入属性accountDAO -->
<property name="accountDAO" ref="accountDAO"/>
</bean>
视频说明
spring应用手册(第一部分)