<!-- 配置用户信息userInfo的bean -->
<bean id="userDao" class="com.aaa.daoImpl.UserDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory"></ref>
</property>
</bean>
<bean id="userService" class="com.aaa.serviceImpl.UserServiceImpl">
<property name="userDao">
<ref bean="userDao"></ref>
</property>
</bean>
<bean id="userAction" class="com.aaa.action.UserInfoAction"
scope="prototype">
<property name="userService">
<ref bean="userService"></ref>
</property>
</bean>项目架构为SSH ,请问有必要设置 scope="prototype" 吗?今天听说 scope="prototype"对性能有很大的影响,请问什么时候使用scope="prototype"这个呢?
解决方案 »
- 初学 javaEE不知道要从何下手?
- myeclipse6.5下连接weblogic9出现java.io.StreamCorruptedException:invalid type code:31
- 下载(管理员及各位大侠请进)
- JAVA程序员求职。。。。。。。。
- 用Java可以调用Asp.net生成的Web Service吗? 顶者有分
- 请问<Warning> <EJB> <BEA-010212>问题怎么解决
- 请问使用Jdom如何读取大文件XML(超过100M)?
- 关于JNDI几个初级问题
- jsp调用ejb....
- 我想用jb5做ejb该怎样配置我的系统,还有需要一些什么知识?
- 如何用javascript和jsp实现两级树菜单
- 关于Spring Security最最基础的问题。
你这样子配置之后会导致每一次的action请求都会产生一个action类的实例,性能影响肯定是有的,但是这应该不要紧吧,在某些情况下是必须使用多例模式的,比如: 如果有使用struts2的 验证框架用的单例模式 那么每次产生的提示信息就会叠加起来。
The prototype scope :
The non-singleton, prototype scope of bean deployment results in the creation of a new bean instance every time a request for that specific bean is made.
现学现卖
总的来说就是每次都实例化一个新的对象。因为spring默认是单例的。
需要加上属性scope=”prototype”或singleton=”false”。singleton模式指的是对某个对象的完全共享,包括代码空间和数据空间,说白了,如果一个类是singleton的,假如这个类有成员变量,那么这个成员变量的值是各个线程共享的
(有点类似于static的样子了),当线程A往给变量赋了一个值以后,线程B就能读出这个值。因此,对于前台Action,肯定不能使用singleton的模式,
必须是一个线程请求对应一个独立的实例。推而广之,只要是带数据成员变量的类,为了防止
多个线程混用数据,就不能使用singleton。对于我们用到的Service、Dao,之所以用了singleton,
就是因为他们没有用到数据成员变量,如果谁的Service需要数据成员变量,请设置singleton=false。