摘要:一、概述 泛型( )是 中引入的一个新特性, 泛型提供了 编译时类型安全检测机制 ,该机制允许开发者在编译时检测到非法的类型。 1.1 什么是泛型? 泛型,即 参数化类型 。 一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具 阅读全文
posted @ 2020-01-18 19:38 风尘博客 阅读(611) 评论(1) 推荐(3) 编辑
摘要:一、定义 是`JDK ThreadLocal`意思就是本地线程的意思。 1.1 是什么? 要想知道他是个啥,我们看看 的源码(基于 )中对这个类的介绍: 大致能够总结出: 1. 可以给我们提供一个线程内的局部变量,而且这个变量与一般的变量还不同,它是每个线程独有的,与其他线程互不干扰的; 1. 与普 阅读全文
posted @ 2020-01-15 00:18 风尘博客 阅读(735) 评论(0) 推荐(1) 编辑
摘要:工厂模式应用非常之广,在 底层源码以及各大主流框架中随处可见,一般以 结尾命名的类,比如 中的 ,`Spring BeanFactory`等,都是工厂模式的典型代表。 一、简单工厂模式 1.1 概念 简单工厂模式又称为静态工厂模式,属于设计模式中的创建型模式。简单工厂模式通过对外提供一个静态方法来统 阅读全文
posted @ 2019-12-03 08:06 风尘博客 阅读(462) 评论(2) 推荐(0) 编辑
摘要:业务系统中经常需要两个对象进行属性的拷贝,大多时候时候使用的是`Apache`或`Spring``BeanUtils`,今天,我们来看一下一个更高效的属性拷贝方式:`BeanCopier`。 阅读全文
posted @ 2019-11-07 09:54 风尘博客 阅读(3760) 评论(1) 推荐(2) 编辑
摘要:Map 中 ConcurrentHashMap是线程安全的,但不是所有操作都是,例如 get() 之后再 put() 就不是了,这时使用 merge() 确保没有更新会丢失。因为Map.merge()意味着我们可以原子地执行插入或更新操作,它是线程安全的。 阅读全文
posted @ 2019-10-10 09:35 风尘博客 阅读(1150) 评论(0) 推荐(1) 编辑
摘要:本文主要讲解Spring Boot 整合Jwt 认证的示例,详细内容,详见文末源码。 阅读全文
posted @ 2019-10-05 00:08 风尘博客 阅读(765) 评论(0) 推荐(0) 编辑
摘要:本案例主要讲解 实现分布式锁的两种实现方式: 实现、 实现。网上关于这方面讲解太多了,Van自认为文笔没他们好,还是用示例代码说明。 一、 实现 该方案只考虑 单机部署的场景 1.1 加锁 1.1.1 原理 1. : 使用 来当锁,因为 是唯一的; 1. : 我传的是唯一值( ),很多童鞋可能不明白 阅读全文
posted @ 2019-09-21 00:34 风尘博客 阅读(978) 评论(1) 推荐(3) 编辑
摘要:如何逃离令人抓狂的 if-else 参数校验的代码,Van 带你用validator快速搞定,节省更多的时间勾搭小姐姐。 阅读全文
posted @ 2019-09-11 23:47 风尘博客 阅读(770) 评论(1) 推荐(1) 编辑
摘要:在单机场景下,全局唯一的ID可以使用数据库的自增功能,分布式系统一般是高并发场景,那自然不适合。 阅读全文
posted @ 2019-09-05 00:04 风尘博客 阅读(1914) 评论(6) 推荐(4) 编辑
摘要:从今天开始,我将正式开始设计模式系列文章的写作分享。第一篇,当然从单例模式说起。 单例模式可以说只要是一个合格的开发都会写,但是如果要深究,小小的单例模式可以牵扯到很多东西,比如:多线程是否安全?是否懒加载?性能等等。还有你知道几种单例模式的写法呢?如何防止反射破坏单例模式? 阅读全文
posted @ 2019-09-02 01:00 风尘博客 阅读(743) 评论(4) 推荐(7) 编辑