首页 > 其他 > 详细

实习的第二个项目开发总结

时间:2019-11-08 17:37:53      阅读:82      评论:0      收藏:0      [点我收藏+]

第二次项目开发总结

一).前后端的数据交互统一使用json格式**

前端传递参数使用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的使用**

? 前台参数检验可以使用@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;
            }

三).使用PostProSql数据库连接

参考:https://www.cnblogs.com/Auge/p/11819876.html

1).如何建表。

? 通过序列,设置表的id自增,通过创建函数,定义触发器,自动生成时间戳。

四).使用git协作 .iml文件不要提交到远程库中

?

五).idea安装LomBok插件,使用@Data注解

? 注意点:

? 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的url风格

? 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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!