Spring的bean作用域:prototype与request的区别?
在学习Spring的bean的作用于过程中,我了解到Spring提供了一些bean的作用域,比如singleton、prototype、session、request
在下有一点疑问,是关于其中的prototype和request作用域的:
①根据我学过的知识,Struts2在不集成Spring时,默认是为每一次请求分配一个新的action对象,以确保action实例是线程安全的;
②另外,Spring的bean在不指定scope属性或者不使用@Scope注解来指明bean的作用域时默认为singleton作用域。因此,为了确
保Spring集成Struts2后的action的线程安全,可以将action的作用域指定为scope="prototype"或者@Scope("prototype")
根据以上两点经验,产生了我对prototype与request之间的疑问:
①prototype代表的是原型模式即每次都创建新的对象,request在字面上是request范围,但不知道该request是只能在使用Spring自身
的spring-mvc时才能使用吗?
②或者说prototype与request两种作用域的使用场合是什么?为什么在Spring集成Struts2时不使用request范围而是prototype范围?
③如果只能使用prototype或者两者皆可,原因又是什么呢? |