前端短时间多次访问一个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简洁一些好,只做一些必要的删改操作)


你可能感兴趣的:(springmvc)