zoukankan      html  css  js  c++  java
  • 2018-6-13-采坑日记

    SpringMVC:

    1、良好开发习惯:SpringCloud框架下微服务之间的相互调用,可以先在Eureka上测试swagger接口,再在本地调用测试。

      --->SpringCloud项目在yml文件中配置Eureka 地址,可以查看Swagger UI 。

    2、字段的描述定义,可以查看对应数据库表字段定义描述。

    3、可以借助https://www.bejson.com/进行json数据格式校验。

    4、坑:sql查询语句 没有指定入参类型parameterType(没有入参),导致查询条件失效,造成全表查找。

    常见bug:

    2018-06-05 20:42:58.925 ERROR [http-nio-48233-exec-3] .s.i.CustomerServiceImpl [ 143]: getCustomerDetail error:nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 4.

       --->条件查询结果0-1个,全表查询4个。

    良好习惯:select语句 加上入参(parameterType)和出参(resultMap)类型。

    5、相同类型的变量才能相互赋值。

      ---->实际上是全限定类名相同。(同包下相同类)

    eg:

    com.test.ccs.user.dao.entity.CustomerPo 
    
    com.test.xxl.ccs.user.dao.entity.CustomerPo
    不能相互赋值

    典例:
    entity bean 转换成service bean

     6、Java对象之间相互转换,必须借助“工具方法”,不能像基本方法那样强制转换。

    eg:

    //对象转换
    BeanUtils.copyProperties(addUserInfoBo, userInfoForm);

     7、强行转型的前提,保证非空,避免空指针异常。

    eg:

    if(!StringUtils.isEmpty(registerInfo.getData(JSONObject.class).get("msspId"))){
      String msspId = (String) registerInfo.getData(JSONObject.class).get("msspId"); 
    }

     8、打印日志是写代码的基本技能

      --->通常会打印 方法的入参和出参。

    eg:

    对象参数打印:
            if(registerInfo != null){
                 logger.info("registerInfo==========:{}",JsonUtils.toJsonString(registerInfo));
             }

        logger.info("/approvalCustomer/resultBo==5=={}",resultBo.toString());

        --->必须重写toString()方法。

        eg:
          public String toString() {
            return JsonUtils.toJsonString(this);
          }

    打日志调试代码常用流程:
    • 详细给接口入参出参打日志;
    • 看日志:入参有问题,则报错:
    • --->追踪页面传递的参数
    • --->追踪页面调的接口(查看页面调用的接口)
    • --->追踪接口查的的数据库(或者调的接口)
    • --->最后查看数据库数据,逐层追踪。

     9、restful接口前后端http传递方法保持一致,不一致可能会造成乱码

    eg:

    前端 GET方式,
    
    后端POST方式,
    @RequestMapping(value = "/test/web/register",method = RequestMethod.POST)
    造成乱码现象,无法成功传递数据。

     10、Eureka Swagger Ui使用

      <1> 开发集成环境:本地启动服务(或者部署到开发环境服务器),开发环境Eureka 发现本地服务,可以在Swagger Ui传参测试,同时可以本地与前端debug联调。
      <2>测试环境:代码部署到测试环境启动服务,测试环境Eureka 发现服务,可以在Swagger Ui传参测试服务接口,一般测试人员常用。
        --->一般应用服务器与Eureka服务器分离,应用服务器与Eureka服务器都考虑负载均衡,通过负载均衡机访问Eureka服务器。

  • 相关阅读:
    jQery总结01
    抽象类和接口精华
    JS基础之开篇
    HTML常见元素集锦
    bzoj3626 [LNOI2014]LCA
    bzoj3223 Tyvj 1729 文艺平衡树
    bzoj3196 Tyvj 1730 二逼平衡树
    bzoj3295 [Cqoi2011]动态逆序对
    bzoj3514 Codechef MARCH14 GERALD07加强版
    bzoj3932 [CQOI2015]任务查询系统
  • 原文地址:https://www.cnblogs.com/gavincoder/p/9180552.html
Copyright © 2011-2022 走看看