欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

日常联调采坑成长

程序员文章站 2022-04-15 18:09:20
...

0.禁止直接赋值粘贴别人的代码

1.关于注解的使用

@service  @RestController  @ReRequestMapping  @Compont

问题:线上某个项目老是运行不成功 ,报错是avatar的一些依赖文件总是 cannot find symbo
分析过程:由于自己手动改了项目依赖为本地依赖,所以项目本身并没有出错,而且在构建环境中也没有出错,当时以前一切都没错,可能是别人代码问题,但是别人代码都是修改了之后都在在本地跑通了之后才提交的代码,然后仔细查看本地项目依赖中引入的avatar版本,终于发现本地的依赖居然是以前的依赖文件,于是找到问题所在,需要pom.xml文件中找到引入的旧版本然后进行删除
之后重新
原因: 项目代码引入avatar老的版本
解决办法:需要pom.xml文件中找到引入的旧版本然后进行删除
日常联调采坑成长

2.dubbo服务的生产者和消费者问题报错
问题:服务提供者和消费者问题
解决方案:明确问题出现原因和现象,然后仔细查看关于项目服务中dubbo的配置文件发现了端倪,当时为了快速解决问题直接粘貼的上面引入文件进行修改,结果后来发现自己天真了
所以这里确定服务提供者和消费者必须这样配置,如图所示

日常联调采坑成长

service服务提供者

if (tagName.length() > 10 || tagName == null){
    result.setStatus(STATUS_ERROR);
    result.setBody("tagName 长度过长或者tagName不能NULL");
    result.setErrorCode(502);
    result.setErrorMessage("接收前端传递数据异常NULL");
    return result;   //忘记直接返回了导致后面数据覆盖
}

问题分析:可能是后端返回值的地方逻辑判断不对,需要修改
解决方案:查询返回数据,找到原因,忘记直接把if 判断的值直接返回,导致前端数据异常

数据库表莫名其妙修改不了,前端请求可以成功但是数据库数据没发生改变
查询资料
找到一个博客地址
数据查看

http://blog.sina.com.cn/s/blog_66519bd80102v3ct.html

1、查询是否锁表  show OPEN TABLES where In_use > 0;
2、查询进程  show processlist
查询到相对应的进程===然后 kill    id
补充:
查看正在锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; 
查看等待锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS; 

在这些错误都排除以后
执行 给增加用户权限:grant all privileges on institution.dt_tag_list to [email protected]'%' identified by "Yx6SEa848Kbk";
完美解决

5.关于代码科学性
关于业务代码一般放在Controller里面去进行判断,但是我们很多时候仅仅只需要提供接口,这时候我们需要把这边service的接口里面的业务流程提到Bussiness里面书写复杂的业务逻辑,便于后期的维护和阅读,然后直接在ServiceImpl里面直接调用处理好的数据即可

public TagDetailsVo queryBackTagAndDetail(Integer applyUserId){
    String tagNames = null;
    List<TagListVo> tagListVoList;
    TagDetailsVo tagDetailsVo = new TagDetailsVo();
    DetailsVo detailsVo = detailsRepo.queryDataByApplyUserId(applyUserId);
    if (detailsVo != null && detailsVo.getTagIds() != null){
        tagListVoList = tagListRepo.findTagNameByIdList(detailsVo.getTagIds());
        //遍历查询结果
        for (TagListVo tagListVo : tagListVoList){
            System.out.println("name=" + tagListVo.getTagName());
            if (tagListVo != null){
               tagNames += tagListVo.getTagName() + "/";
            }
        }
        //去掉拼接的最后一个 /
        String finalTagNames = tagNames.substring(4,tagNames.length() - 1 );
        tagDetailsVo.setTagNameList(finalTagNames);
        tagDetailsVo.setApplyUserId(detailsVo.getApplyUserId());
        tagDetailsVo.setBackDetails(detailsVo.getDetail());
        return tagDetailsVo;
    }else {
        return tagDetailsVo;
    }
}

以后慢慢采坑,慢慢记录成长,争取考上研究生!!!