自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

原创 CompletableFuture介绍与实战

​ 日常工作中,大多数情况下我们的接口的执行逻辑都是串行化的,串行化的逻辑也基本能满足我们绝大部分的场景。但是,在一些情况下我们的代码可能会存在一些比较耗时的操作,串行的逻辑就有可能造成代码的阻塞,影响用户的体验。这种情况下就需要我们对一些复杂的场景,耗时的操作做一些异步并行的操作,来提升代码的执行效率,从而提升用户的体验。​

2024-07-15 16:16:21 771

原创 Redis+Caffeine 实现两级缓存实战

本文介绍Redis+Caffeine实现两级缓存的方式。一种是常规的方式,一种的基于注解的方式。具体的实现可根据自己项目中的业务场景。至于为什么要用Redis+Caffeine的方式,文章也提到了,目前我们Redis集群压力还算挺大的,而且接口对RT的要求也是比较高的。有一点好的就是我们的数据是每天全量推一边,总量也不大,实时性要求也不强。所以就很适合本地缓存的方式。使用本地缓存也要注意设置容量的大小和过期时间,否则容易出现内存溢出。

2024-07-10 15:15:37 1158 1

原创 Spring Cloud OpenFeign底层实现原理

OpenFeign是Spring Cloud 在Feign的基础上支持了Spring MVC的注解,如@RequesMapping等等。OpenFeign的@FeignClient可以解析SpringMVC的@RequestMapping注解下的接口,并通过动态代理的方式产生实现类,实现类中做负载均衡并调用其他服务。通过触发 Spring 应用程序对 classpath 中 @FeignClient 修饰类的扫描解析到修饰类后, Feign 框架通过扩展 Spring Bean。

2024-04-16 22:31:55 1117 1

原创 Java设计模式-结构型-适配器模式

​ 与电源适配器相似,在适配器模式中引入了一个被称为适配器(Adapter)的包装类,而它所包装的对象称为适配者(Adaptee),即被适配的类。适配器的实现就是把客户类的请求转化为对适配者的相应接口的调用。也就是说:当客户类调用适配器的方法时,在适配器类的内部将调用适配者类的方法,而这个过程对客户类是透明的,客户类并不直接访问适配者类。因此,适配器让那些由于接口不兼容而不能交互的类可以一起工作。适配器模式可以将一个类的接口和另一个类的接口匹配起来,而无须修改原来的适配者接口和抽象目标类接口。

2024-02-19 12:29:40 1452

原创 idea2023创建spring项目无法选择Java8

今天下载了新版的idea 2023.3.2,但是在创建springboot项目的时候只能选择Java17和Java21,没法选择其他的版本。

2024-02-06 14:35:53 918 10

原创 SpringBoot面试之SpringBoot自动装配原理

最近因为各种原因,我又重新加入到了找工作的大军当中。昨天在面试的时候与面试官聊到我们项目都是基于SpringBoot开发的,然后面试官就顺口问了句:”SpringBoot项目会引入许多的starter,比如:mybatis-plus-boot-starter等,它是怎么完成加载的?又是怎么完成按需加载的呢?“

2023-11-20 15:40:04 650

原创 设计模式-抽象工厂模式

我们知道,在工厂方法模式中,通过为每个产品创建一个工厂的方式,没增加一个产品只需要增加一个产品类,然后实现这个产品类的工厂,解决了简单工厂模式的不满足开闭原则的问题。那么有这么一种场景,随着工厂业务场景的增加,产品的类型也不断的增加,如果还是为每个产品都创建一个工厂类,那么代码中势必会出现大量的工厂类,增加系统的开销,也不好维护。此时我们就考虑,是不是可以把一些相关联的产品归纳成一个产品族,交由同一个工厂进行管理。

2023-09-07 11:39:38 588

原创 ThreadPoolExecutor线程池详解

深入学习线程池的用法,工作原理和底层源码分析

2023-08-08 17:17:39 435

原创 Elasticsearch 聚合数据结果不精确问题解决方案

近期我们项目中出现使用ES聚合某个索引的数据取TOP 10的数据和相同条件下查询所有数据然后按数据量排序取的TOP 10的数据不一致的问题。下面我们简单分析一下这个问题,列出一些常见的解决方案。

2023-06-02 14:27:18 2473

原创 @DS+@Transactional注解切换数据源失效解决方案

spring 的@Transactional声明式事务管理时通过动态代理实现的。@DS注解加到mapper接口、service接口、service方法里都不生效,获取的还是默认的主数据源。猜测是由于spring的aop切面机制导致拦截不到@DS注解,进而不能切换数据源,正确的做法是添加到service实现类或者实现类里具体的方法上。

2023-04-28 15:42:57 7400 1

原创 springboot项目整合EasyExcel解决方案

springboot整合easyexcel实现导入导出

2023-03-21 12:33:11 822

原创 OutOfMemoryError: Unable to create new native thread:Hystrix线程池导致线程数耗尽的问题

OutOfMemoryError: Unable to create new native thread使用Hystrix线程池导致线程数耗尽的问题,问题排查及解决方案

2023-02-06 11:11:31 1200 2

原创 设计模式-策略模式2.0

设计模式-策略模式2.0,干掉代码中的if...else...,升级版的策略模式

2022-10-24 19:03:46 455

原创 基于Docker搭建ELK分布式日志系统

基于Docker搭建ELK分布式日志系统详细教程

2022-08-31 11:52:51 916

原创 设计模式-模板方法模式

23中设计模式之模板方法模式学习

2022-06-29 18:56:06 150

原创 解决Idea中无法下载源码

Cannot Download Sources Sources not found for: org.springframework:spring-context:4.3.11.RELEASE

2022-05-20 14:30:42 1153 1

原创 记一次MySQL自增ID用完了怎么办

MySQL自增主键用完了怎么办

2022-05-09 18:59:45 2051 1

原创 Elasticsearch学习笔记-相关概念整理

Elasticsearch学习笔记-相关重要概念整理

2022-05-03 21:53:08 148

原创 Elasticsearch学习笔记-重要知识整理

Elasticsearch相关知识面试题整理

2022-05-03 21:50:08 214

原创 MySQL索引详解

索引下推在非主键索引上的优化,可以有效减少回表的次数,大大提升了查询的效率。关闭索引下推可以使用如下命令,配置文件的修改不再讲述了,毕竟这么优秀的功能干嘛关闭呢:看到这里,你是不是对于自己的sql语句里面的索引的有了更多优化想法呢。

2022-04-02 20:22:00 3434 1

原创 设计模式-观察者模式

设计模式持续学习:23设计模式-观察者模式

2022-03-29 15:10:09 146

原创 JVM垃圾回收机制详解

JVM垃圾回收机制详解

2022-03-28 17:35:10 1438

原创 基于Docker搭建Elasticsearch集群和Kibana

Elasticsearch学习:基于docker搭建Elasticsearch集群,docker-compose实现elasticsearch集群

2022-03-18 10:59:41 3694

原创 elasticsearch安装ik分词器

elasticsearch安装ik分词器

2022-03-15 09:44:12 3093

原创 基于docker搭建ElasticSearch和Kibana环境

es学习笔记Day1:基于docker搭建es和kibana环境

2022-03-12 22:27:36 2990 1

原创 Java8 stream中list转map的坑

Java8 stream中list转map的坑

2022-03-08 15:25:54 278

原创 Java8中List<Integer>和int[]的互相转换

Java8中List<Integer>和int[]的互相转换

2022-03-08 15:17:56 378 1

原创 解决:Cannot resolve plugin org.apache.maven.plugins:maven-compiler-plugin:3.1问题

解决:Cannot resolve plugin org.apache.maven.plugins:maven-compiler-plugin:3.1问题问题Cannot resolve plugin org.apache.maven.plugins:maven-compiler-plugin:3.1解决方法在maven安装路径下的conf文件夹下的settings.xml文件中添加如下代码<mirror> <id>alimaven</id>

2022-03-07 14:35:07 16002 7

原创 一次真实的Java面试的代码优化的问题

一次真实的Java面试问题的代码优化的问题

2022-02-22 16:57:44 498 1

原创 设计模式-工厂方法模式

23种设计模式-工厂方法模式

2022-02-20 20:24:40 108

原创 设计模式-策略模式

23种设计模式-策略模式

2022-02-19 22:19:52 146

原创 设计模式-简单工厂模式

设计模式-简单工厂模式的实现

2022-02-18 15:08:56 283

原创 设计模式-单例模式

23设计模式-单例模式

2022-02-18 14:16:31 145

原创 Java设计模式(持续学习........)

java设计模式,23种设计模式全面解析

2022-02-18 13:47:09 178

原创 MySQL事务特性及实现原理

MySQL事务详解,事务的实现原理

2022-02-17 18:32:11 733 1

原创 简述对象内存布局

对象内存布局,Java的对象头和对象组成详解

2022-02-16 23:39:19 773 2

原创 Redis缓存雪崩、缓存穿透和缓存击穿的区别及解决方案

Redis缓存雪崩、缓存穿透和缓存击穿的区别及解决方案

2022-02-16 22:47:07 858 1

原创 简述类加载过程详解

简述JVM类加载过程详解

2022-02-15 23:18:51 982

原创 JVM内存区域详解

JVM内存区域详解一 概述JVM是Java Virtual Mechine(Java虚拟机)的缩写。对于 Java 程序员来说,在虚拟机自动内存管理机制下,不再需要像 C/C++程序开发程序员这样为每一个 new 操作去写对应的 delete/free 操作,不容易出现内存泄漏和内存溢出问题。正是因为 Java 程序员把内存控制权利交给 Java 虚拟机,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那么排查错误将会是一个非常艰巨的任务。二 JVM运行时数据区域Java 虚拟机

2022-02-13 22:50:06 887

原创 说说JVM对象的创建过程

jvm对象创建的过程

2022-02-13 00:02:24 375

elasticsearch嵌套聚合dsl

elasticsearch嵌套聚合dsl

2023-09-14

leecode刷题代码

leecode刷题代码

2023-09-14

java学习代码自学代码

java学习代码自学代码

2023-08-19

springboot代码

springboot代码

2023-08-19

springboot整个各种中间件,各项技术学习代码

springboot整个各种中间件,各项技术学习代码

2023-06-03

java23种设计模式学习代码

java23种设计模式学习代码

2023-06-03

空空如也

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

TA关注的人

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