spring与struts2进行整合,单例多例注意的地方(prototype)


spring与struts2进行整合做一个平台项目:

     当我点击一个功能时,写入搜索关键字时,查到对应的表数据,但切换其他功能,再次点这个功能,结果在没有输入关键字查询的情况下,显示的表数据仍然是上一次我写入关键字查询到的结果,为什么?

解答:是因为我在后台没有写这个注解:

@Scope("prototype")

加了这个之后就解决了,原因:

    如果我不加这个注解,那么每次当我从前台传到后台时,都用的同一个实例,所以也就是说,我第二次调用方法的时候,传入的对象仍然是包含输入关键字的bean,那么导致了上述出现的数据错误;

    spring容器在进行输出prototype的bean对象时,会每次都重新生成一个新的对象给请求方,虽然这种类型的对象的实例化以及属性设置等工作都是由容器负责的,但是只要准备完毕,并且对象实例返回给请求方之后,容器就不在拥有当前对象的引用,请求方需要自己负责当前对象后继生命周期的管理工作,包括该对象的销毁。也就是说,容器每次返回请求方该对象的一个新的实例之后,就由这个对象“自生自灭”,最典型的体现就是spring与struts2进行整合时,要把action的scope改为prototype。 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值