自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 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 884 1

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

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

2024-02-19 12:29:40 1305

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

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

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

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

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

2023-11-20 15:40:04 517

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

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

2023-09-07 11:39:38 579

原创 ThreadPoolExecutor线程池详解

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

2023-08-08 17:17:39 395

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

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

2023-06-02 14:27:18 2089

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

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

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

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

springboot整合easyexcel实现导入导出

2023-03-21 12:33:11 780

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

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

2023-02-06 11:11:31 1026

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

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

2022-10-24 19:03:46 429

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

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

2022-08-31 11:52:51 801

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

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

2022-06-29 18:56:06 132

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

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

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

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

MySQL自增主键用完了怎么办

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

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

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

2022-05-03 21:53:08 137

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

Elasticsearch相关知识面试题整理

2022-05-03 21:50:08 205

原创 MySQL索引详解

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

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

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

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

2022-03-29 15:10:09 136

原创 JVM垃圾回收机制详解

JVM垃圾回收机制详解

2022-03-28 17:35:10 1412

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

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

2022-03-18 10:59:41 3658

原创 elasticsearch安装ik分词器

elasticsearch安装ik分词器

2022-03-15 09:44:12 3075

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

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

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

原创 Java8 stream中list转map的坑

Java8 stream中list转map的坑

2022-03-08 15:25:54 263

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

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

2022-03-08 15:17:56 361 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 15815 7

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

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

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

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

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

2022-02-20 20:24:40 103

原创 设计模式-策略模式

23种设计模式-策略模式

2022-02-19 22:19:52 136

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

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

2022-02-18 15:08:56 272

原创 设计模式-单例模式

23设计模式-单例模式

2022-02-18 14:16:31 135

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

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

2022-02-18 13:47:09 171

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

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

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

原创 简述对象内存布局

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

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

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

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

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

原创 简述类加载过程详解

简述JVM类加载过程详解

2022-02-15 23:18:51 973

原创 JVM内存区域详解

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

2022-02-13 22:50:06 861

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

jvm对象创建的过程

2022-02-13 00:02:24 368

原创 简单说说Spring Bean的生命周期

Spring Bean的生命周期Bean容器中找到配置文件中Spring Bean的定义。如果有多个构造方法,则要推断构造方法;确定好构造方法之后,进行实例化,Bean 容器利用 Java Reflection API 创建一个 Bean 的实例。如果涉及一些属性,则利用 set()方法对对象的属性进行填充。如果Bean实现了BeanNameAware接口,则调用setBeanName()方法,传入Bean的名字。如果Bean实现了BeanClassLoaderAware接口,则调用setBea

2022-02-10 19:02:28 307

原创 GC如何判断对象可以被回收

GC如何判断对象可以被回收引用计数法:每个对象有一个引用计数器,新增一个引用时计数器加1,引用释放时计数器减1,当计数为0时,可以回收。可达性算法:从GC Root开始向下搜索,搜索走过的路径为引用链。当一个对象到GC Root没有任何引用链时,则证明此对象时不可用的,那么虚拟机会判断是可回收的对象。引用计数法,可能会出现A 引用了 B,B 又引用了 A,这时候就算他们都不再使用了,但因为相互引用 计数器=1 永远无法被回收。可以作为GC Root的对象有:虚拟机栈(栈帧中本地变量表)中

2022-02-09 23:32:58 406

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关注的人

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