A. springmvc怎么传输json数据
在SpringMVC传递JSON数据格式需要加入两个包:com.springsource.org.codehaus.jackson-1.4.2.jar,com.springsource.org.codehaus.jackson.mapper-1.4.2.jar。
实体javaBean:Person 具有tname,gender,age 三个String类型的属性,在这里我们需要特别注意,Person需要一个无参构造函数,否则就会出现415代码错误。
前台ajax函数:
$.ajax({
url:"ajaxs",//注意在这里的请求路径上面不能加上/否则就会出现400错误,无法找到请求路径
type:"POST",
contentType: "application/json",//不加此项就会出现415错误代码
dataType:"JSON",
data:JSON.stringify({"tname":"张三","gender":"male","age":"20"}),//在这里的参数我最开始一直都使用
{"tname":"张三","gender":"male","age":"20"},结果导致一直出现400错误,表示前台到后台的数据不匹配
success:function(data,status){alert("ok");},
error:function(){alert("error");},
fail:function(){alert("fail");}
});
后台:
@RequestMapping(value="/ajaxs",method=RequestMethod.POST)
@ResponseBody
public Person ajax(@RequestBody Person p)
{
p.setTname("lisi");
System.out.println("ok");
return p;
}
B. spring batch为什么能处理大数据
Spring Batch是一个轻量级的,完全面向Spring的批处理框架,可以应用于企业级大量的数据处理系统。Spring Batch以POJO和大家熟知的Spring框架为基础,使开发者更容易的访问和利用企业级服务。SpringBatch可以提供大量的,可重复的数据处理功能,包括日志记录/跟踪,事务管理,作业处理统计工作重新启动、跳过,和资源管理等重要功能。
业务方案:
1、批处理定期提交。
2、并行批处理:并行处理工作。
3、企业消息驱动处理
4、大规模的并行处理
5、手动或是有计划的重启
6、局部处理:跳过记录(如:回滚)
技术目标:
1、利用Spring编程模型:使程序员专注于业务处理,让Spring框架管理流程。
2、明确分离批处理的执行环境和应用。
3、提供核心的,共通的接口。
4、提供开箱即用(out of the box)的简单的默认的核心执行接口。
5、提供Spring框架中配置、自定义、和扩展服务。
6、所有存在的核心服务可以很容的被替换和扩展,不影响基础层。
7、提供一个简单的部署模式,利用Maven构建独立的Jar文件。
批处理的整个流程可以明显的分为3个阶段:
1、读数据
2、业务处理
3、归档结果数据
SpringBatch为我们提供了什么呢?
1、统一的读写接口
2、丰富的任务处理方式、
3、灵活的事务管理及并发处理
4、日志、监控、任务重启与跳过等特性
注意,Spring Batch未提供关于批处理任务调度的功能,因此如何周期性的调用批处理任务需要自己想办法解决,就Java来说,Quartz是一个不错的解决方案,或者写脚本处理之。
C. java springmvc 大文件分片上传处理
*/@ApiModel("大文件分片入参实体")public class MultipartFileParam {
@ApiModelProperty("文件传输任务ID") private String taskId;
@ApiModelProperty("当前为第几分片") private int chunk;
@ApiModelProperty("每个分块版的大小") private long size;
@ApiModelProperty("分片总数") private int chunkTotal;
@ApiModelProperty("主体权类型--这个字段是我项目中的其他业务逻辑可以忽略") private int objectType;
@ApiModelProperty("分块文件传输对象") private MultipartFile file;
D. 采用spring batch 处理大数据量,瓶颈在数据库吞吐量时,该如何优化
读取数据估计是没办法了,重点可以放在写入的操作上,粗略的认为,你版使用框架进行数据库权写入操作还不如用使用java原生的jdbc进行操作然后使用jdbc 的原生的批处理,我觉得肯定比框架快。我记得我当时插入10w条数据,只用了3秒,不过用的是oracle数据库。进行边读取边插入,这样占用的内存也相对小一些
E. java代码使用spring的jdbctemplate查询大数据量时速度特别慢,该如何解决呢
第一,不要用*,第二,建议分页,因为数据太大,读到内存里也麻烦