java共享数据问题:两bean里都有变量引用了同一共bean,共bean里有map,想这两个bean可以共同访问这个map
java-spring下开发web,想两个不同的bean里都引用同一个bean对象,这个对象里有一个map类型的数据员,想实现两个不同的bean可以共享访问这个map类型...
java-spring下开发web,想两个不同的bean里都引用同一个bean对象,这个对象里有一个map类型的数据员,想实现两个不同的bean可以共享访问这个map类型数据。可是读map时,里面为空,为甚么,另外一边的bean再不断往map写数据了。
bean配置
<!-- 数据池 -->
<bean id="datapool" class="com.yjh.datapool.DataPoolImp">
<property name="size" value="100" />
</bean>
<!-- 多用户访问对象 -->
<bean id="cmdAction" class="com.yjh.action.CmdAction" scope="prototype">
<property name="datapool" ref="datapool" />
</bean>
<!-- 服务数据写入对象 -->
<bean id="udpDataMonitor" class="com.yjh.client.udp.UdpDataMonitor" init-method="init">
<property name="datapool" ref="datapool" />
</bean> 展开
bean配置
<!-- 数据池 -->
<bean id="datapool" class="com.yjh.datapool.DataPoolImp">
<property name="size" value="100" />
</bean>
<!-- 多用户访问对象 -->
<bean id="cmdAction" class="com.yjh.action.CmdAction" scope="prototype">
<property name="datapool" ref="datapool" />
</bean>
<!-- 服务数据写入对象 -->
<bean id="udpDataMonitor" class="com.yjh.client.udp.UdpDataMonitor" init-method="init">
<property name="datapool" ref="datapool" />
</bean> 展开
4个回答
2014-08-21 · 知道合伙人软件行家
关注
展开全部
两个不同的bean里都引用同一个bean对象
即A B 同时都引用了C,这时候如果想数据共享,那么你要在spring里设置这个C为单例
在spring依赖注入配置里bean的作用域
<bean id="role" class="spring.chapter2.maryGame.Role" scope="singleton"/>
默认是单例模式,即scope="singleton"
另外scope还有prototype、request、session、global session作用域
scope="prototype"多例
请采纳哈..
即A B 同时都引用了C,这时候如果想数据共享,那么你要在spring里设置这个C为单例
在spring依赖注入配置里bean的作用域
<bean id="role" class="spring.chapter2.maryGame.Role" scope="singleton"/>
默认是单例模式,即scope="singleton"
另外scope还有prototype、request、session、global session作用域
scope="prototype"多例
请采纳哈..
更多追问追答
追问
datapool 这个bean我没配置scope哦,默认应该可以的啊
追答
那就要确认一下,看你那两个bean是否引为同一个
展开全部
可以用JAVA多态实现,举个简单的例子
比如 t3是公共Bean ,t1和t2是两个不同的bean,
t1中有设置t3的map的方法add
t2用于获取t3的map的方法get
将t1和t2分别继承 t3
使用的时候可以这样
t3 t1=new t1();
t1.add("key","value");
t3 t2=new t2();
System.out.println(t2.get("key"));
这样t1 t2就可以共用t3这个公共bean了 。
比如 t3是公共Bean ,t1和t2是两个不同的bean,
t1中有设置t3的map的方法add
t2用于获取t3的map的方法get
将t1和t2分别继承 t3
使用的时候可以这样
t3 t1=new t1();
t1.add("key","value");
t3 t2=new t2();
System.out.println(t2.get("key"));
这样t1 t2就可以共用t3这个公共bean了 。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
同一个bean对象设置成单例吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询