摘要: Map 中 ConcurrentHashMap是线程安全的,但不是所有操作都是,例如 get() 之后再 put() 就不是了,这时使用 merge() 确保没有更新会丢失。因为Map.merge()意味着我们可以原子地执行插入或更新操作,它是线程安全的。 阅读全文
posted @ 2019-10-10 09:35 风尘博客 阅读(1548) 评论(0) 推荐(1) 编辑
摘要: 本文主要讲解Spring Boot 整合Jwt 认证的示例,详细内容,详见文末源码。 阅读全文
posted @ 2019-10-05 00:08 风尘博客 阅读(894) 评论(0) 推荐(0) 编辑
摘要: 本案例主要讲解 实现分布式锁的两种实现方式: 实现、 实现。网上关于这方面讲解太多了,Van自认为文笔没他们好,还是用示例代码说明。 一、 实现 该方案只考虑 单机部署的场景 1.1 加锁 1.1.1 原理 1. : 使用 来当锁,因为 是唯一的; 1. : 我传的是唯一值( ),很多童鞋可能不明白 阅读全文
posted @ 2019-09-21 00:34 风尘博客 阅读(1268) 评论(1) 推荐(3) 编辑
摘要: 如何逃离令人抓狂的 if-else 参数校验的代码,Van 带你用validator快速搞定,节省更多的时间勾搭小姐姐。 阅读全文
posted @ 2019-09-11 23:47 风尘博客 阅读(1016) 评论(1) 推荐(1) 编辑
摘要: 在单机场景下,全局唯一的ID可以使用数据库的自增功能,分布式系统一般是高并发场景,那自然不适合。 阅读全文
posted @ 2019-09-05 00:04 风尘博客 阅读(2283) 评论(6) 推荐(4) 编辑
摘要: 从今天开始,我将正式开始设计模式系列文章的写作分享。第一篇,当然从单例模式说起。 单例模式可以说只要是一个合格的开发都会写,但是如果要深究,小小的单例模式可以牵扯到很多东西,比如:多线程是否安全?是否懒加载?性能等等。还有你知道几种单例模式的写法呢?如何防止反射破坏单例模式? 阅读全文
posted @ 2019-09-02 01:00 风尘博客 阅读(908) 评论(4) 推荐(7) 编辑
摘要: 现在几乎大部分的`App`都支持使用多个第三方账号进行登录,如:微信、QQ、微博等,我们把此称为多账号统一登陆。而这些账号的表设计,流程设计至关重要,不然后续扩展性贼差。本文不提供任何代码实操,但是梳理一下博主根据我司账号模块的设计,提供思路,仅供参考。 阅读全文
posted @ 2019-08-29 00:48 风尘博客 阅读(6790) 评论(0) 推荐(12) 编辑
摘要: 文章浏览量统计,low的做法是:用户每次浏览,前端会发送一个GET请求获取一篇文章详情时,会把这篇文章的浏览量 +1,存进数据库里。 阅读全文
posted @ 2019-08-27 00:25 风尘博客 阅读(2303) 评论(6) 推荐(2) 编辑
摘要: 说起应用分层,大部分人都会认为这个不是很简单嘛 就`Controller`,`Service`, `Mapper`三层。看起来简单,很多人其实并没有把他们职责划分开,在很多代码中,`Controller`做的逻辑比`Service`还多,`Service`往往当成透传了,这其实是很多人开发代码都没有注意到的地方,反正功能也能用,至于放哪无所谓呗。这样往往造成后面代码无法复用,层级关系混乱,对后续代码的维护非常麻烦。 阅读全文
posted @ 2019-08-25 23:53 风尘博客 阅读(3350) 评论(3) 推荐(3) 编辑
摘要: 一、跨域背景 1.1 何为跨域? 的一般格式: 示例: 是由 + + + + 组成。 只要协议,子域名,主域名,端口号这四项组成部分中有一项不同,就可以认为是不同的域,不同的域之间互相访问资源,就被称之为跨域。 1.2 一次正常的请求 Controller层代码: 启动项目,测试请求 浏览器打开 " 阅读全文
posted @ 2019-08-25 16:46 风尘博客 阅读(10885) 评论(0) 推荐(1) 编辑