前端短时间多次访问一个controller,造成线程问题,加synchronized

@RequestMapping(value="/addCommand", method = RequestMethod.POST, consumes=MediaType.MULTIPART_FORM_DATA_VALUE)
	@ResponseBody
 	public ResponseMessage<?> addCommand(
		@ApiParam(name="batchNo", value="用于多文件上传")@RequestParam(value="batchNo", required=true)String batchNo){

    String userId = request.getAttribute(JwtConstants.CURRENT_USER_NAME).toString();
	CommandInfoEntity commandinfo = commandservice.findUniqueByProperty(CommandInfoEntity.class, "batchNo", batchNo);
    if(commandinfo==null){
        /**需求是每次传图片都会传一个batchNo,用来区分是不是同一组图片
        *但是ajax传过来的时侯,多个请求会一起挤到findUniqueByProperty 这个方法里去查
        *而这时batchNo对应的数据还没有生成,所以每一个访问都会访问到null,就会每次都新生成一条记录
        /
    }else{
    }


}

我的解决办法是:在方法上加锁synchronized (这应该是一个暂时性的方法,百度的时候说应该加在service里,因为controller简洁一些好,只做一些必要的删改操作)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值