自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (2)
  • 收藏
  • 关注

原创 SpringBoot + Redis 实现接口限流

伙伴们知道,在 Spring Boot 中,我们其实更习惯使用 Spring Data Redis 来操作 Redis,不过默认的 RedisTemplate 有一个小坑,就是序列化用的是 JdkSerializationRedisSerializer,不知道小伙伴们有没有注意过,直接用这个序列化工具将来存到 Redis 上的 key 和 value 都会莫名其妙多一些前缀,这就导致你用命令读取的时候可能会出错。1:针对当前接口的全局性限流,例如该接口可以在 1 分钟内访问 100 次。

2023-04-25 15:28:21 392 1

原创 本地缓存-CacheLoader

如果采用实现InitializingBean接口的方式去执行特定业务化的操作,则需要重写afterPropertiesSet这仅有的一个方法。InitializingBean的作用是Bean注入到Spring容器且初始化后,执行特定业务化的操作。SpringBoot - InitializingBean的作用是什么?

2023-04-23 18:51:58 353

原创 java设计模式-动态代理模式

DependsOn强调的是Bean与Bean之间的依赖关系。如:A @DependsOn B表示,只有当B初始化完成了才会去初始化A。这里所谓的Bean可以是任何Bean:包括@Bean、@Component、@Configuration等一切形式。当一个类实现了ApplicationContextAware之后,这个类就可以方便获得ApplicationContext中的所有bean,这个类可以直接获取spring配置文件中,所有有引用到的bean对象。

2023-04-23 17:08:50 124

原创 TCP的三次握手和四次挥手

经事长智,历事成人

2023-02-10 14:23:33 193

原创 java8的stream的中间操作无状态

中间操作无状态filter就是过滤条件, boolean Pridicate< T > 根据返回值类型来确定是否过滤这一条属性 List<Integer> list = Arrays.asList(1, 2,3, 4, 5, 6, 7, 8, 9); list.stream().filter(x->x>=5).forEach(System.out::print);//56789mapmap——接收 Lambda , 将元素转换成其他形式或提取

2021-08-29 23:25:10 1927

原创 java8的stream的中间操作有状态

Stream无状态:指元素的处理不受之前元素的影响;有状态:指该操作只有拿到所有元素之后才能继续下去。非短路操作:指必须处理所有元素才能得到最终结果;短路操作:指遇到某些符合条件的元素就可以得到最终结果,如 A || B,只要A为true,则无需判断B的结果。中间操作有状态distinct去重 distinctList<Integer> list = Arrays.asList(1, 2,3, 4, 5, 6, 7, 8, 9,1,1,1,9,9,9);list.st

2021-08-29 23:21:53 467

原创 java8的stream的非短路终端操作

非短路终端操作forEachforEachOrdered()​ 顺序是按照原来Stream的数据顺序,那可以调用forEachOrdered,这个主要用在并行的情况,(上面的例子) List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9); list.stream().forEach(System.out::print); System.out.println(); lis

2021-08-29 23:15:15 143

原创 java8的stream的短路终端操作

短路终端操作Stream无状态:指元素的处理不受之前元素的影响;有状态:指该操作只有拿到所有元素之后才能继续下去。非短路操作:指必须处理所有元素才能得到最终结果;短路操作:指遇到某些符合条件的元素就可以得到最终结果,如 A || B,只要A为true,则无需判断B的结果。allMatch、anyMatch、noneMatchallMatch:Stream中全部元素符合传入的predicate返回 trueanyMatch:Stream中只要有一个元素符合传入的predicate返回

2021-08-29 23:13:21 315

原创 mysql的乐观锁,悲观锁(共享锁,排斥锁)

mysql的并发操作时而引起的数据的不一致性(数据冲突):丢失更新:两个用户(或以上)对同一个数据对象操作引起的数据丢失。解决方案:1.悲观锁,假设丢失更新一定存在;sql后面加上**for update;**这是数据库的一种机制。2.乐观锁,假设丢失更新不一定发生。update时候存在版本,更新时候按版本号进行更新。一、乐观锁乐观锁 不是数据库自带 的,需要我们自己去实现。 乐观锁是指操作数据库时(更新操作),想法很乐观,认为这次的操作不会导致冲突,在操作数据时,并不进行任何其他的特殊处理(也

2021-08-29 22:41:42 683

原创 springboot整合mybatis-plus插件(解决误区)

新建springboot项目 pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> &l

2021-08-28 22:15:03 716

原创 mybatis-plus的配置文件GeneratorCodeConfi自动生成代码

/** * 自动生成mybatisplus的相关代码 */public class GeneratorCodeConfig { public static String scanner(String tip) { Scanner scanner = new Scanner(System.in); StringBuilder help = new StringBuilder(); help.append("请输入" + tip + ":");

2021-08-28 22:13:40 98

原创 全网最全的mysql表的关联查询(内连接,外连接)

Mysql 多表连接查询 inner join 和 outer join 的使用JOIN的含义就如英文单词“join”一样,连接两张表,大致分为 内连接,外连接,右连接,左连接,自然连接 。这里描述先甩出一张用烂了的图,然后插入测试数据。首先先列举本篇用到的分类(内连接,外连接,交叉连接)和连接方法(如下):*A)内连接*:join,inner join*B)外连接*:left join,left outer join,right join,right outer join,union*C)交

2021-08-28 22:06:02 2889

原创 MVCC实现原理详解

MYSQL MVCC实现原理详解MVCC(Multi Version Concurrency Control的简称),代表多版本并发控制。与MVCC相对的,是基于锁的并发控制,Lock-Based Concurrency Control)。 就是乐观锁的一种实现方式。在Java编程中,如果把乐观锁看成一个接口,MVCC便是这个接口的一个实现类而已。MVCC最大的优势:读不加锁,读写不冲突。在读多写少的 OLTP 应用中,读写不冲突是非常重要的,极大的增加了系统的并发性能数据库默认隔离级别:RR(Rep

2021-08-28 21:57:43 801

原创 MyBatis分页插件-PageHelper的配置与应用

第一步:增加jar包<!-- 分页插件 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.2.0</version>

2021-08-28 21:44:49 427

原创 超级全面的mysql的四种事务盖隔离级别(细深思)

一、事务的基本要素(ACID)1、原子性(Atomicity)​ 事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都不做2、一致性(Consistency)​ 事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A向B转账,不可能A扣了钱,B却没收到。3、隔离性(Isolation)​ 一个事务的执行不能其它事务干扰。即一个事务内部的操作及使用的数据对其它并发事务是隔离的,并发执行的各个事务之间不能互相干扰( 每个之间互不影响,及时相同操作,也如同串行一样,顺序执行

2021-08-28 21:42:10 100

原创 关于mysql中的DDL,DML,DQL和DCL

SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL 1.数据定义语言DDL(Data Definition Language)对象: 数据库和表关键词: create /alter /drop /truncate(删除当前表再新建一个一模一样的表结构)创建数据库:create database school;删除数据库:drop database school;切换数据库:use school;创建表:create table stu

2021-08-28 21:33:25 251

原创 Mysql 一条sql查询语句是如何执行的

MySQL 可以分为 Server 层和存储引擎层两部分第一步:应用程序把查询SQL语句发送给服务器端执行我们在数据库层执行SQL语句时,应用程序会连接到相应的数据库服务器,把SQL语句发送给服务器处理。我们在数据库层执行SQL语句时,应用程序会连接到相应的数据库服务器,把SQL语句发送给服务器处理。说明有个就表示现在系统里面有一个空闲连接数据库里面,长连接是指连接成功后,如果客户端持续有请求,则一直使用同一个连接。短连接则是指每次执行完很少的几次查询就断开连接,下次查询再重新建立一个第二步

2021-08-28 21:28:54 204

原创 java8的peekStream Debugger插件

1.创建一个实体类@Data@AllArgsConstructorpublic class User{ private String name;}2.写一个main方法 Stream<User> peek = Stream. of(new User("1"), new User("2"), new User("3")) .peek(u -> u.setName("111")); List&

2021-08-28 19:59:04 201

原创 java8的stream对map存多个属性

中间操作无状态首先新建一个实体类@Data@NoArgsConstructor@AllArgsConstructorpublic class User{ private String name; private String address; private String age;}实例化两个对象放入list集合中 List<User> list1 = new ArrayList<User>(); User user = ne

2021-08-28 19:44:48 4588 2

java8jdk.zip

java8的jdk安装包

2021-08-28

mysql的乐观锁、悲观锁.md

java,乐观锁,悲观锁详解释

2021-08-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除