ddd-重构项目
摘要:DDD领域驱动设计之代码重构 以用户功能为例 1. 重构前代码片段 UserController.java /** * <p> * 前端控制器 * </p> * * @author xujie * @since 2021-06-03 */ @RestController @RequestMappin
阅读全文
多线程处理
摘要:@Component public class OkThreadPool { private static final Integer CORE_POOL_SIZE = 20; private static final Integer MAX_POOL_SIZE = 40; private stat
阅读全文
处理一对多关系
摘要:Map<String, PlantBatchDO> plantingBatchMap = PlantingBatchDOList.stream().collect(Collectors.toMap(it -> it.getBatchId(), it -> it));
阅读全文
分组
摘要:Map<Integer, List<TraceFactorDO>> traceFactorMappers = traceFactorDOS.stream().collect(Collectors.groupingBy(TraceFactorDO::getValueFormat));
阅读全文
判断null抛异常
摘要:Optional.ofNullable(queryTraceDTO.getGenerated()).orElseThrow(() -> new RuntimeException(FCodes.REQUEST_PARAM_ERROR));
阅读全文
去重
摘要:Map<String, TraceDTO> filterTraceDTOMap = traceDTOList.stream() .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comp
阅读全文
排序
摘要:// 排序 return dtoList.stream().sorted(Comparator.comparing(TracePlanDTO::getEndDate)).collect(Collectors.toList());
阅读全文
Object多层判空
摘要:dto.setBaseName(Optional.ofNullable(baseDO).map(it -> it.getBaseName()).orElse(""));
阅读全文
查看jvm占用
摘要:-Xloggc:gc.log -XX:+PrintGCTimeStamps -XX:+PrintGCDetails
阅读全文
Jmx远程监控CPU,内存
摘要:不带密码 vim jmxremote.access ##on linux monitorRole readonly controlRole readwrite 带密码 vim jmxremote.password ##on linux monitorRoleUser jmx controlRoleU
阅读全文
内存过高排查
摘要:[root@dev-209 ~]# top -c top - 11:05:49 up 30 days, 23:21, 4 users, load average: 2.29, 2.23, 1.97 Tasks: 170 total, 3 running, 162 sleeping, 5 stoppe
阅读全文
CPU利用率过高
摘要:## 1. 首先显示线程列表 ps -mp ${pid} -o THREAD,tid,time ## 2. 其次将需要的线程ID转换为16进制格式: printf "%x\n" ${tid} ## 3. 最后打印线程的堆栈信息: jstack ${pid} |grep ${tid} -A 30
阅读全文