本案例主要讲解Redis实现分布式锁的两种实现方式:Jedis实现、Redisson实现。网上关于这方面讲解太多了,Van自认为文笔没他们好,还是用示例代码说明。

阅读全文 »

工厂模式应用非常之广,在JDK底层源码以及各大主流框架中随处可见,一般以Factory结尾命名的类,比如Mybatis中的SqlSessionFactorySpring中的BeanFactory等,都是工厂模式的典型代表。

阅读全文 »

一、设计模式

1.1 设计模式是什么?

  1. 设计模式是解决特定问题的一系列套路,是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用。其目的是为了提高代码的可重用性、代码的可读性和代码的可靠性。
  2. 设计模式的本质是面向对象设计原则的实际运用,是对类的封装性、继承性和多态性以及类的关联关系和组合关系的充分理解。
阅读全文 »

在开发中经常需要写一些字段校验的代码,比如非空,长度限制,邮箱格式验证等等,导致充满了if-else 的代码,不仅相当冗长,而且很让人抓狂。

hibernate validator官方文档)提供了一套比较完善、便捷的验证实现方式。它定义了很多常用的校验注解,我们可以直接将这些注解加在我们JavaBean的属性上面,就可以在需要校验的时候进行校验了。在Spring Boot 火热的现在,该工具已经包含在spring-boot-starter-web中,不需额外引入其他包。

阅读全文 »

在业务场景中,随着数据量迅速增长,一个库一个表已经满足不了我们的需求的时候,我们就会考虑分库分表的操作,本文主要介绍 Mybatis 动态数据源切换,可用于读写分离或多库存储。

阅读全文 »

一、背景

文章浏览量统计,low的做法是:用户每次浏览,前端会发送一个GET请求获取一篇文章详情时,会把这篇文章的浏览量+1,存进数据库里。

阅读全文 »

一、思路

  1. 后端生成数字和字母混搭的指定位数的验证码,存储在Redis中;
  2. 将生成的验证码画成图片并转换成base64字符,和Redis 验证码的key 一块返给前端;
  3. 前端登录时候,把验证码传给后端,后端 取出 Redis中的值进行对比。
阅读全文 »

短信业务在我们日常使用的软件或者网站,应该算是无处不在的功能模块,比如注册、验证码功能。国内有很多互联网公司都提供短信业务,比如阿里、腾讯、七牛。本篇文章提及的是腾讯提供的短信服务。

阅读全文 »

模糊查询也是数据库SQL中使用频率很高的SQL语句,使用MyBatis来进行更加灵活的模糊查询。

阅读全文 »

现在主流的多数据源切换方式有:AOP 动态切换来做多数据源或者升级成Mybatis-Plus可以简单的配置多数据源,偶然见到大佬整理的很简单的多数据源的配置,改进一下,分享出来。

阅读全文 »

本文主要介绍使用Maven插件的方式自动生成Mybatis相应的实体、Mapper、映射文件等,能应付简单的CRUDCreate/Retrieve/ Update/Delete

阅读全文 »