zoukankan      html  css  js  c++  java
  • 实习的第二个项目开发总结

    第二次项目开发总结

    一).前后端的数据交互统一使用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语句时判断查询条件是否为空。

    十一).打印异常信息

    ​ e.getMessage()

    十二).批量删除内部抛出异常

    ​ 在删除循环体中,若删除失败抛出new Exeception("异常描述"+删除异常的数

    ​ 据id).

    金麟岂能忍一世平凡 飞上了青天 天下还依然
  • 相关阅读:
    Lucene基础排序算法改进
    大数据量的过滤 (用于爬虫,蜘蛛) Bloom Filter 布隆过滤器
    往空间,博客里添加音乐播放器
    汇编随笔
    一个女程序员的故事(酷壳陈皓)
    cmd 命令之删除整个文件夹
    亿度空间
    用wubi.exe安装ubuntu下载速度很慢怎么办?
    qtm第一次
    copy的妙用
  • 原文地址:https://www.cnblogs.com/Auge/p/11821538.html
Copyright © 2011-2022 走看看