前端传递参数使用json格式,后台需要使用@RquestBody注解来接收json格式的
参数,并将json格式装换为java对象。
注意点:
? 1).在http协议中默认的数据传送格式为application/x-www-form-urlencode格式.
? 传送数据格式:
pageNum=1&pageSize=1&labelId=&assetNumber=0000
? 2).@RequestBody只能解析application/json类型的数据,不能解析key-value类
? 型的数据。
? 传递key-value的数据会报错:
"Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported"
? 传送数据格式:
{
"pageNum":"1",
"pageSize":"5",
"labelId":"",
"assetNumber":"0000"
}
3).使用@RquestParam注解可以解析application/form-data和application/x-
? www-form-urlencode类型的数据
? content-type = application/form-data,
? 传送数据格式:
Content-Disposition: form-data; name="pageNum"
1
------WebKitFormBoundary7MA4YWxkTrZu0gW--,
Content-Disposition: form-data; name="pageNum"
1
------WebKitFormBoundary7MA4YWxkTrZu0gW--
Content-Disposition: form-data; name="pageSize"
5
------WebKitFormBoundary7MA4YWxkTrZu0gW--,
Content-Disposition: form-data; name="pageNum"
1
------WebKitFormBoundary7MA4YWxkTrZu0gW--
Content-Disposition: form-data; name="pageSize"
5
------WebKitFormBoundary7MA4YWxkTrZu0gW--
Content-Disposition: form-data; name="labelId"
------WebKitFormBoundary7MA4YWxkTrZu0gW--,
Content-Disposition: form-data; name="pageNum"
1
------WebKitFormBoundary7MA4YWxkTrZu0gW--
Content-Disposition: form-data; name="pageSize"
5
------WebKitFormBoundary7MA4YWxkTrZu0gW--
Content-Disposition: form-data; name="labelId"
------WebKitFormBoundary7MA4YWxkTrZu0gW--
Content-Disposition: form-data; name="assetNumber"
0000
------WebKitFormBoundary7MA4YWxkTrZu0gW--
? 4.Controller的方法中只能使用一个@RequestBody来获取参数。
? 前台参数检验可以使用@validated注解来检验参数传入格式是否符合规范,通
? 过 BindingResult对象来获取错误信息,@Valiated配合BindingResult使用,
? BindingResult要跟在@Valiated后边。
注意点:
? 1).使用@Valiated时,如果传入参数不符合符合规范,程序抛出异常,使用
? BindingResult可以手动的处理异常,通过hasErrors()判断参数是否错误
? hasErrors()返回一个boolean值。
if (bindingResult.hasErrors()) {
baseResponse.setCode(CommonConstants.FAILED_CODE);
baseResponse.setMsg(bindingResult.getFieldError().getDefaultMessage());
return baseResponse;
}
参考:https://www.cnblogs.com/Auge/p/11819876.html
1).如何建表。
? 通过序列,设置表的id自增,通过创建函数,定义触发器,自动生成时间戳。
?
? 注意点:
? 1). 使用@Data注解,必须下载Lombok插件。
? 2).使用@Data注解,在编译源码时自动生成setter、getter、toString、
? hashCode方法。
? 在团队开发中由项目负责人将注册服务注册到一个服务器上,开发人员使用同
? 一个注册中心服务地址,在本地电脑上运行程序,将各自模块的服务注册到
? 注册中心,实现服务的共享调用。
? 注册中心的作用:实现服务之间的调用。
? 前端与后台的访问,其实就是浏览器与服务器之间访问的问题。
? 我们在idea中开发程序,本地电脑就充当一个服务器,作为应用程序的运行
? 环境,每个服务之间通过端口号进行区分,浏览器访问资源时,通过服务器
? 地址(本地电脑地址 :locallhost/127.0.0.1)找到对应的应用程序入口,通
? 过端口号找到对应的服务。
? 例如:
? 标签模块端口号:20221
? 用户模块端口号:10221
http://localhost:20221/locationLabel/criteriaPage
http://localhost:10221/admin/user/userPage
? 使用微服务开发时,我们可以将其他模块都要使用到的类和方法等共同使用
? 的数据放在一个公共服务模块中,在各个模块中引入这个公共模块的maven
? 依赖,这样就实现了代码了复用,解决了代码的冗余问题。
?
? RestFul的定义及使用
? 参考:https://blog.csdn.net/qq_38941937/article/details/89145283
? https://blog.csdn.net/DingnanDean/article/details/79673708
?
? restful: Representational Status Transfer (表现层状态转换)
? 添加一个用户:PostMapping ("/user")
? 删除一个用户:DeleteMaping("/user/{id}")
? 修改一个用户: PutMapping("/user/{id}")
? 查找一个用户:GetMapping("/user{id}")
? 通过请求的方式(post、delete、put、get)来区分请求的操作,实现
? 资源的定位。
?
? 可以封装一个分页查询对象,该对象包含pageNum,pageSize和查询条件。
? 构造查询sql语句时判断查询条件是否为空。
?
?
原文:https://www.cnblogs.com/Auge/p/11821538.html