Spring 中的default-lazy-init和 lazy-init scope
一,二 默认都为false
一、spring的default-lazy-init参数 <beans>
spring在启动的时候,会默认加载会默认加载整个对象实例图,从初始化ACTION配置、到 service配置到dao配置、乃至到数据库连接、事务等等。这样可以减少web服务器在运行时的负担,但是对于开发者来说无疑是效率极低的一个设置了。
spring提供了default-lazy-init属性,其配置形式如下,applicationContext.xml中:
< beans default-lazy-init ="true" >
</beans>
二.Spring 中lazy-init 属性 <bean>
当 IoC容器启动时,service会实例化
<beans>
<bean id="service" type="bean路径" lazy-init="true"/>
</beans>
三.spring scope的作用域。默认是单例模式,即scope="singleton"。另外scope还有prototype、request、session、global session作用域。scope="prototype"多例。再配置bean的作用域时,它的头文件形式如下:
<bean id="role" class="spring.chapter2.maryGame.Role" scope="singleton"/>
这里的 scope 就是用来配置 spring bean 的作用域,它标识 bean 的作用域。
<bean id="role" class="spring.chapter2.maryGame.Role" scope="singleton"/>
或者
<bean id="role" class="spring.chapter2.maryGame.Role" singleton="true"/>
2、prototype
<bean id="role" class="spring.chapter2.maryGame.Role" scope="prototype"/>
或者
<beanid="role" class="spring.chapter2.maryGame.Role" singleton="false"/>
3、request
<web-app>
...
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
...
</web-app>
如果是Servlet2.4以前的web容器,那么你要使用一个javax.servlet.Filter的实现:
<web-app>
..
<filter>
<filter-name>requestContextFilter</filter-name>
<filter-class>org.springframework.web.filter.RequestContextFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>requestContextFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
...
</web-app>
接着既可以配置bean的作用域了:
<bean id="role" class="spring.chapter2.maryGame.Role" scope="request"/>
4、session
<bean id="role" class="spring.chapter2.maryGame.Role" scope="session"/>
5、global session
<bean id="role" class="spring.chapter2.maryGame.Role" scope="global session"/>


浙公网安备 33010602011771号