![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
江以南
哈哈(ಡωಡ)hiahiahia
展开
-
分布式锁的各种实现及优缺点
应用场景 超卖现象 解决办法 update的行锁 Synchronized关键字,且手动控制事务 使用ReentrantLock,jdk1.5之后出现 单体下锁的局限性 无法跨JVM进程,跨多应用环境 基于数据库悲观锁的分布式锁 实现步骤 多个进程、多个线程访问共同组建数据库 通过 select…for update访问同一条数据 for update锁定数据,其他线程只能等待 注意:需要关闭事务的自动提交。 优缺点 优点:简单方便、便于理解、抑郁操作 缺点:并发量大时,对原创 2020-11-13 23:58:05 · 1338 阅读 · 0 评论 -
Spring Security登录流程权限校验
前端将用户登录表单传入后端 后端接收到表单数据,有验证码先校验验证码 然后将用户的账号密码封装为UsernamePasswordAuthenticationToken对象 接着调用AuthenticationManager的authenticate方法 由于这是一个接口,所以实际调用的是它的实现类ProviderManager下的authenticate方法 调用身份认证的方法后,本质上是调用实现类AbstractUserDetailsAuthenticationProv..原创 2020-09-03 21:55:33 · 861 阅读 · 0 评论 -
rabbitMQ学习笔记
学习来源:MQ消息中间件之RabbitMQ以及整合SpringBoot2.x实战教程,已完结! 1.MQ引言 1.1 什么是MQ MQ(Message Quene) : 翻译为 消息队列,通过典型的 生产者和消费者模型,生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入,轻松的实现系统间解耦。别名为 消息中间件 通过利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。 1.2 MQ有原创 2020-08-24 20:29:07 · 444 阅读 · 0 评论 -
Redis入门(三)
学习来源:狂神说Javabilibili Redis持久化 面试和工作,持久化都是重点 Redis 是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失。所以 Redis 提供了持久化功能! RDB(Redis database) 什么是RDB 在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里。Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,原创 2020-08-17 14:56:23 · 144 阅读 · 0 评论 -
Redis入门学习(二)
学习来源:狂神说Javabilibili Jedis Jedis是redis官方推荐的java连接开发工具!使用java操作redis中间件,如果要操作redis,一定要对jedis十分熟悉。 测试 导入对应依赖 <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> <groupId>redis.clients</groupId> &原创 2020-08-17 14:55:07 · 79 阅读 · 0 评论 -
Redis入门学习(一)
概述 https://baike.baidu.com/item/Redis/6549233?fr=aladdin 百度百科 基础知识 redis默认有16个数据库,默认使用第0个。可以使用**select**命令进行切换 已连接。 my:0>select 3 # 切换数据库 "OK" my:3>dbsize # 查看DB大小 "0" my:3> 其他命令 my:3>set name "zhang" # 存入数据 "OK" my:3>g原创 2020-08-17 14:50:24 · 110 阅读 · 0 评论 -
MySQL使用utf8时的错误
MySQL使用utf8时的错误 # Incorrect string value: ‘\xF0\x9F\x98\x83 <…’ for column ‘summary’ at row 1 这个错误的主要原因在于,MySQL 的“utf8”编码上不是真正意义上的 UTF-8。 MySQL的“utf8”只支持每个字符最多三个字节,而真正的 UTF-8 是每个字符最多四个字节。 MySQL 一直没有修复这个 bug,他们在 2010 年发布了一个叫作“utf8mb4”的字符集,用来代替原来的utf8 所以原创 2020-08-17 14:47:00 · 506 阅读 · 0 评论 -
Swagger文档解析java后端返回的long类型,出现的精度丢失问题
问题详情 后端返回的数据 swagger解析的图片 从上面的两张图片,可以看出数据不一致。而且只出现在swagger中,用浏览器或postman请求就没出现(只针对我这个请求而言) 解决办法 @JsonFormat(shape = JsonFormat.Shape.STRING) private Long bookId; 使用@JsonFormat这个注解,就能解决这个问题 效果 可以看到结果已经正确。 ...原创 2020-08-17 14:45:39 · 1512 阅读 · 0 评论 -
MyBatis入门
什么是MyBatis MyBatis的发展历程 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。 iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs) 当前,最新版本是MyB原创 2020-08-17 14:44:31 · 62 阅读 · 0 评论 -
Spring Security整合Jwt过程
Spring Security整合Jwt过程 pom依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>or原创 2020-08-17 14:43:27 · 295 阅读 · 0 评论