,
之前创建的列表对象失去引用被gc线程回收,
最后调用size方法之前没有对
allProductList做判空处理,导致线上出现
空指针异常;这个地方可能开发人员会有
一个幻觉,我明明初始化了一个空...包含code和msg属性,在处理正确的
情况下可能会有data属性问题:
I)第一个红框处,如果req==null,
那么直接结束调用返回给前端,
但是前端拿不到任何响应数据
II)第二个红框处,如果出现异常...,
LOGGER打印的信息吃掉了异常堆栈信息,
前端拿到请求异常的响应信息,
但是后台查阅日志是分析不出来是
什么异常的解决方案:
I)第一个红框处response加入参数非法code和msg
II)第二个红框处...put操作,省去了频繁的get和put
6.将计算的压力放在了数据库层
分析:上段代码中第二个(暂时忽略第一个)
红框标注的部分,频繁资利用数据库自带的
函数进行计算和统计问题:乍眼一看,这段代码也没有什么问题...;
这里我想给大家明确一个概念,
数据库为什么叫做数据库,
是因为其有独特的最擅长的功能,
就是查询和存储,不是数据库不能
够计算而是让数据库计算,效率真的高吗?