(100分)继续骚扰大家,Spring与Struts1.x集成的问题
小弟又遇到了新问题
Spring集成Struts1.x的时候
在Struts的配置文件里配置插件和controller,可以使Struts知道Spring的存在,也使Struts的Action像Bean一样可以在applicationContext.xml里配置
给Action设置一个DAO对象,使得Action可以使用DAO对象进行对数据库的操作。
好了下面说我的问题
Action是单例的,没有用Spring的时候,我在execute方法里新创建DAO对象,这样可以保证每次有线程进入execute方法的时候,DAO对象都是新创建
不会出现同步问题。
使用Spring以后DAO是Action中的一个属性
那DAO也是单例的吗?
如果也是单例的是否涉及到线程之间考虑互斥的问题?
比如我有一个Action叫LoginAction 它的execute方法中调用DAO中的getUser()方法查询用户信息进行用户校验
但是Action 和 DAO都是Spring由IOC来创建的,如果两个用户同时登录的话是否会发生意想不到的情况呢?
各位在工作中是如何保证线程之间的同步的呢?
谢谢大家
------解决方案--------------------晕·!!我页正在自学这个方面的知识~~!!
跟进来长长见识~~!!
------解决方案--------------------
lz的问题很好
是单例,可以参考官方参考的,bean的作用域
默认就是singleton
先给你个回答,稍后给你贴下图,你手边有官方reference么
------解决方案--------------------mark.
------解决方案--------------------DAO的方法不用同步,如果你的参数都是通过方法参数传到方法里面去的,100个线程就有100个不同方法参数,如果你在DAO里定义了成员变量,并且你的方法里使用了这些成员变量,这个时候才需要考虑同步吧,个人见解。
------解决方案--------------------Spring 的BEAN可以不是单例的
<bean id="MYBEAN" class="com.cycnet.myclass"
singleton="false"/>
------解决方案--------------------路过学习一下
------解决方案--------------------可以自己设置!当然 单例从效率来看好些了!
------解决方案--------------------学习
------解决方案--------------------学习
------解决方案--------------------在DAO方法中只要不操作成员变量就是线程安全的
------解决方案--------------------可以采用单例,即多个用户共享一个dao实例
------解决方案--------------------不错,学习了
------解决方案--------------------学习了
~~
顶