Bao Tingyu's Blog

自用IDEA主题

Darcula 主题整体色调看着舒服,但是代码区分不直观,比如直接看代码是看不出这个这个是类、接口、抽象类、枚举还是啥,而且左侧图标也很难区分。 该主题基于Darcula主题对类、接口、抽象类、注解在编辑区按颜色做了区分,同时图标也使用与代码相同的颜色,整体效果如下: 下载方式: IDEA plugin marketPlace 搜索:Tineyu-Theme 源码地址:https:/...

SpringBoot测试实践

测试按照粒度可分为3层: 单元测试:单元测试(Unit Testing)又称为模块测试 ,是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类(超类)、抽象类、或者派生类(子类)中的方法。 集成测试:整合测试(Integration Testi...

异常正常打印堆栈丢失

现象发现异常日志文件里有很多nullPointException,只有简单的异常名称,却没有堆栈信息。(已确认代码中日志打印方式正确) 原因jit本身的优化,没有记录trace “JVM对一些特定的异常类型做了Fast Throw优化,如果检测到在代码里某个位置连续多次抛出同一类型异常的话,C2会决定用Fast Throw方式来抛出异常,而异常Trace即详细的异常栈信息会被清空。这种...

分布式缓存实践

分布式缓存主要用于查询场景,缓解DB压力,针对不同的一致性要求分为两种缓存场景: 最终一致性分布式缓存 强一致分布式缓存 CAP中的C表示的是多副本一致性 ACID中的C表示的是动作一致性,比如A给B打钱 最终一致性分布式缓存 最终一致性对一致性要求不高,可以采用异步更新的方式避免业务系统阻塞。 采用旁路缓存模式,先去缓存获取数据,存在则直接返回,不存在去读DB,然...