从bug中理解action的作用

学习spring框架时,总是不能理解action为什么要加上scope=prototype,也就是为什么要多例,单例不行吗?

所以,做项目的时候也没怎么注意,有时候忘记写prototype,对功能也没什么影响。直到遇到两次错误,我才理解多例的重要性。

1. 在进行图片上传时,给出uploadLogo属性接收前台传递过来的数据,第一次上传图片正常保存,第二次没上传图片却保存第一次上传的图片,我当时就想:应该是uploadLogo缓存了上次的记录,只要用完清空就好了,也解决了问题。

private File uploadLogo;  // 上传的文件

public void setUploadLogo(File uploadLogo) {
	this.uploadLogo = uploadLogo;
}

2. 用JPA保存实体时,第一次正常保存,第二次报如下错误,一开始以为是主键生成策略的问题,后来加了prototype,问题就解决了。

org.hibernate.PersistentObjectException: detached entity passed to persist

总结,prototype的作用是:每次访问action时,新实例化一个action,也就是说,action里面的值都清空了,不会受到上一个action的影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值