02-@Validated和@Valid用法详解 参考资料:Spring Boot 官网文档 《37. Validation》 参考资料:@Valid 与 @Validated 注解用法详解 1.情景展示SpringBoot,SpringMvc 常用参数校验用法详解 在实际开发过程中,针对前端请求参数的校验是一个不小的工作量。 什么时候需要对请求参数进行校验? 情形1:前后端分离 前后端分离,虽然会提高项目的开发进度,但同样也存在前后端开发人员 2021-11-28 08_框架技术 > 02_Spring > 05_Validation #Spring #注解 #参数校验
01-MySQL最全优化经验 1. MySQL查询过程 2. 优化工具 3. 解决问题思路3.1 一般应急调优的思路针对突然的业务办理卡顿,无法进行正常的业务处理!需要立马解决的场景! 12345671、show processlist2、explain select id ,name from stu where name='clsn'; # ALL id name age sexselect id, 2021-11-25 16_性能优化 > 02_数据库性能优化 #MySQL #性能优化
03-Redis分布式锁原理 参考资料: Distributed locks with Redis Redisson Distributed locks and synchronizers 一、实现原理1.1 基本原理JDK 原生的锁可以让不同线程之间以互斥的方式来访问共享资源,但如果想要在不同进程之间以互斥的方式来访问共享资源,JDK 原生的锁就无能为力了。此时可以使用 Redis 来实现分布式锁。 Redis 实现分 2021-11-18 15_分布式 > 03_分布式锁 #Redis #架构 #分布式锁
02-Redisson实现分布式锁 关键词基于NIO的Netty框架,生产环境使用分布式锁 redisson加锁:lua脚本加锁(其他客户端自旋) 自动延时机制:启动watch dog,后台线程,每隔10秒检查一下客户端1还持有锁key,会不断的延长锁key的生存时间 可重入锁机制:第二个if判断 ,myLock :{“8743c9c0-0795-4907-87fd-6c719a6b4586:1”:2 } 释放锁:无锁直接返回;有 2021-11-18 15_分布式 > 03_分布式锁 #Redis #架构 #分布式锁 #Redisson
04-Stream实现原理分析 1.Stream 为什么会出现?Stream 出现之前,遍历一个集合最传统的做法大概是用 Iterator,或者 for 循环。这种两种方式都属于外部迭代,然而外部迭代存在着一些问题。 开发者需要自己手写迭代的逻辑,虽然大部分场景迭代逻辑都是每个元素遍历一次。如果存在像排序这样的有状态的中间操作,不得不进行多次迭代。多次迭代会增加临时变量,从而导致内存的浪费。 虽然 Java 5 引入的 fo 2021-10-23 18_源码分析 #微服务 #Stream
07-线程池并行查询 12345678910111213141516171819202122232425262728293031323334353637383940/*** 多线程并行查询*/private IbStatistics parallelQuery(IbStatistics statistics, ... ...) throws InterruptedException { //创建线程池执 2021-10-17 02_编程语言 > 01_Java > 01_JavaSE > 05_并发和锁 #JavaSE #线程池
16-MySQL解析json字符串 参考资料: https://dev.mysql.com/doc/refman/8.0/en/json.html MySQL 5.7版本以后支持json格式的字段类型定义、存储和使用,最近做BI开发,开发把所需数据用JSON的形式存储在字段中,本次记录下MySQL解析JSON。 一般来说,主要是提取json字段的值,所以update就不写了,提取select json使用的参数是: JSON_E 2021-09-16 05_数据库 > 01_MySQL #MySQL #JSON
02-注解定制Double精度位数 注解定制Double精度位数12345678910111213141516171819202122232425262728293031323334import com.fasterxml.jackson.core.JsonGenerator;import com.fasterxml.jackson.databind.JsonSerializer;import com.fasterxml.jack 2021-08-22 02_编程语言 > 01_Java > 01_JavaSE > 08_反射机制 #注解 #JavaSE #Double
04-RabbitMQ 高级教程 1. MQ 的相关概念1.1 什么是 MQMQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是message 而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ 是一种非常常 见的上下游“逻辑解耦+物理解耦”的消息通信服务。使用了 MQ 之后,消息发送上游只需要依赖 MQ,不 用依赖其他服务。 1.2 为什么要用 M 2021-08-17 08_框架技术 > 07_RabbitMQ #RabbitMQ
01-项目研发流程 高效开会的十大原则: 1、凡是会议,必先准备:时间、地点、人员、物料、议程、通知。 2、凡是会议,必先训练:头脑风暴的会议如何开?发布性的会议如何开? 3、凡是会议,必有纪律:迟到、早退、中途退场、玩手机、会议时长、发言时长,怎么处理? 4、凡是会议,必有主题:主题越单一,越明确越好。最好不超过3个。 5、凡是主题,必有议程:会议具体的流程是什么?第一步、第二步、第三步。 6、凡是议程,必 2021-07-16 12_项目管理 > 06_PMP #项目管理