zoukankan      html  css  js  c++  java
  • 基础平台-项目管理+组织管理心得

    mybatisPlus注解@TableField("is_xxx")失效问题

    现象:增删改正常,is_xxx结果映射失败

    原因:mybatisPlus注解只对自动生成的方法有效,对自定义的方法无效

    解决:由于mybatisPlus注解只能拦截自动生成的方法,所以自定义方法中含有字段映射关系不同时(如is_xxx -> xxx),必须手动写入resultMap,以确保结果集成功映射。

    controller接口@requestBody List XXX 报错:

    现象:会报List无法序列化

    原因:@requestBody是将前端参数转换成对象传入,需要对象类实现序列化接口,然而,ArrayList并没有实现Serializable无法序列化

    解决:
    1.改为Long[]接收参数,前端传入通过get请求XXX=1,2,3传入数组(不利于业务拓展,get请求有长度限制)
    2.封装成对象,使用json格式传输(可拓展)

    数据库并发访问导致的逻辑不一致

    现象:数据库未建唯一索引时,多线程组织编码构建出现相同编码

    构建编码过程:
    1.根据上级编码统计当前层级的总数
    2.插入构建的编码

    原因:多个线程情况下,构建编码的过程不是原子操作,可能出现同步更新问题。

    解决:
    1.synchronized 锁对象或方法,不可行(synchronized只能锁单机,无法作用于分布式)
    2.redis实现分布式锁(工具类:@RedisLock(keys = {"#自定义业务key"}))

    版本一致时,maven依赖更新不及时

    现象:版本一致时,maven依赖更新不及时

    原因:版本一致时,maven优先调用本地库的依赖包,当本地库不存在时才会去远程仓库下载

    解决:删除本地同版本的依赖包,重新下载远程依赖。

    基本类型常量在前时,等号右边包装类为null仍然报空指针异常!

    public static void main(String[] args) {
        Integer i = null;
        int constant = 1;
        if (constant == i) {		// java.lang.NullPointerException!!
            System.out.println("test");
        }
    }
    

    原因:右边为包装类,编译时会优先转为基本类型进行判断,自动调用拆箱方法(null.拆箱方法)

    解决:同时使用基本类型或者包装类,保持两边类型一致。

  • 相关阅读:
    autolayout先进的自动布局工具箱
    iOS7自定义back按钮和pop交互手势
    iOS7开发技巧
    UICollectionView专题
    关于AutoLayout(自动布局)那些事儿
    代码统计利器--CLOC
    vue之指令篇 ps简单的对比angular
    从无到有之webpack+vuerouter的简单例子以及各个属性解释
    关于requestanimationframe
    vim常用指令
  • 原文地址:https://www.cnblogs.com/shimmernight/p/15389483.html
Copyright © 2011-2022 走看看