上周真正体会了一次人在家中坐,Bug天上来,生产环境出现SQLException,空指针。这次工作生涯中第一次生产中出现自己写的bug,造成的原因:1.封板前匆忙更改代码;2.改完测试不到位;3.对Mybatis原理不深入。
1. 生产页面报错500,java.lang.NullPointerException
原因:有一行代码传入参数实体为null,Mybatis解析实体属性在实体类中调用到get\set方法,因为实体为Null直接报错。
通常我们的POJO不会为空,往常的项目是sql中参数如果为空Null最多也就是查不到数据。此处报错用到的POJO是另一个查询结果,当此查询结果POJO为空又在另外一个方法中引用,没有判断null。
2.内存溢出
在测试环境出现的内存溢出,项目运行后过一两天就会出现。使用工具分析日志,最终原因是测试环境问题缓存配置的不对。
本项目用的Ehcahe缓存,分布式缓存使用Ehcahe需要注意。可参考https://blog.csdn.net/happyqwz/article/details/8271783