自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 资源 (5)
  • 收藏
  • 关注

原创 一文搞懂:Java项目线上故障处理的基本方法

Java项目的调优和故障处理相关内容记录

2024-04-02 17:34:13 825

原创 Java类结构和类加载

Java类结构和类加载相关知识

2024-03-21 15:24:48 992

原创 java并发相关知识

java并发相关的知识点整理

2024-03-12 11:39:43 552

原创 Jvm相关知识点

jvm相关知识点整理,文章中图片取自网络

2024-03-11 15:46:32 853

原创 Springboot3.x+dubbo3.x+jdk17 开发的微服务框架

使用的jdk17、springboot3.1.2、dubbo3.2.10、nacos2.2.1、mybatis-flex1.7.7为基础搭建的一套简易微服务框架

2024-02-01 17:37:08 443 1

原创 Kafka的相关知识

Kafka的相关知识整理

2023-01-12 16:14:11 739 2

原创 Tomcat的Connector启动过程分析

Tomcat的Connector(连接器)组件的启动过程

2023-01-05 16:49:26 735

原创 tomcat的启动过程分析

tomcat的类加载机制和启动过程分析

2022-10-31 16:15:19 648

原创 tomcat的宏观架构

tomcat的宏观架构了解

2022-10-27 15:16:20 717

原创 SpringBoot的自动装配

SpringBoot自动装配:SpringBoot 定义了一套接口规范,这套规范规定:SpringBoot 在启动时会扫描外部引用 jar 包中的文件,将文件中配置的类型信息加载到 Spring 容器,并执行类中定义的各种操作。对于外部 jar 来说,只需要按照 SpringBoot 定义的标准,就能将自己的功能装置进 SpringBoot。

2022-09-23 14:16:04 2048 1

原创 Spring的监听器和多播器

Spring的多播器与监听器

2022-09-14 17:06:59 712

原创 Spring的@Autowired注解原理分析

本篇分析@Autowired注解的解析源码,同时也会顺带分析@Qualifier在配合@Autowired时的匹配逻辑

2022-09-01 14:55:00 753 1

原创 Spring的@Bean注解原理详解

Spring的@Bean注解实现原理解析,提出ConfigurationClassPostProcessor、BeanDefinitionRegistryPostProcessor、BeanFactoryPostProcessor、Spring包扫描等的相关内容

2022-08-30 17:18:13 3449 4

原创 Spring事务源码详解

事务是逻辑上的一组操作,要么都执行,要么都不执行,关于事务的基本知识可以看Spring事务:Spring 支持两种方式的事务管理:编程式事务管理、声明式事务管理

2022-05-26 10:53:05 5653 3

原创 Spring的BeanPostProcessor分析

本文旨在分析`BeanPostProcessor`的加载流程和调用流程,并通过`BeanPostProcessor`同时分析一下`ApplicationContextAware`这个常用的获取Spring的`ApplicationContext`的接口

2022-05-09 10:01:22 620

原创 Spring的FactoryBean

spring的FactoryBean分析

2022-05-06 11:35:20 1699 2

原创 SpringIOC的三级缓存原理分析

一. 什么是SpringIOC的三级缓存类与类之间的依赖关系形成了闭环,就会导致循环依赖问题的产生。如下图是三个类之间的循环依赖二. 跟着栗子看源码下面这个栗子是两个类的相互依赖,同样能看出来三级缓存的流程Animal类:public class Animal { private String name; private Fruits fruits; public Fruits getFruits() { return fruits; }

2022-04-02 09:34:07 1745 2

原创 详解SpringAOP源码

springAOP源码分析

2022-03-23 16:49:22 665 1

原创 模板方法模式

模板模式

2022-03-17 16:54:56 455

原创 归并排序(附java和rust实现)

一. 简介归并排序(Merge Sort)是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。二. 图解三. JAVA实现import java.util.Arrays;public class SortTest { public static void main(String[]

2022-03-11 14:58:15 183

原创 java线程池源码分析

一. 线程池介绍在web开发中,服务器需要接收并处理请求,所以会为一个请求来分配一个线程来进行处理。如果每次请求都新创建一个线程的话实现起来非常简便,但是存在一个问题:如果并发的请求数量非常多,但每个线程执行的时间很短,这样就会频繁的创建和销毁线程,如此一来会大大降低系统的效率。可能出现服务器在为每个请求创建新线程和销毁线程上花费的时间和消耗的系统资源要比处理实际的用户请求的时间和资源更多。那么有没有一种办法使执行完一个任务,并不被销毁,而是可以继续执行其他的任务呢?这就是线程池的目的了。线程池为线

2022-03-04 15:11:16 1056

原创 MD5加密算法详解

一. 引言对于软件研发人员来说 MD5 不是一个陌生的词汇,平时的软件研发中,经常使用 MD5 校验消息是否被篡改、验证文件完整性,甚至将MD5当作加密算法使用。MD5虽不陌生,但不是所有研发人员都了解其算法原理,通过这篇文章详细学习MD5 摘要算法。认识 MD5掌握 MD5 算法原理编码实现 MD5 摘要算法使用Java开发语言 编码实现MD5摘要算法二. MD5简介MD5全称Message Digest Algorithm 5,翻译过来就是:消息摘要算法第5版,是计算机安全领域广泛使

2022-02-17 10:49:47 57

原创 Elasticsearch的各种用法记录

constantScoreQuery:当我们不关心检索词频率TF(Term Frequency)对搜索结果排序的影响时,可以使用constant_score将查询语句query或者过滤语句filter包装起来//GET yzj_dev_stl_bill_de/_search{ "query": { "constant_score": { "filter": { "bool": { "term": { "FIELD": .

2021-09-26 16:35:43 256

原创 通过logstash把mysql的全量和增量数据同步到es

一. 版本和下载我这边选择的版本是es:7.7.0,所以kibana和logstash也是对应的版本:7.7.0,下载地址:https://www.elastic.co/cn/downloads/past-releases,点进这个地址可以选择对应的产品和版本就可以进行下载本文按照windows电脑进行示例二. 安装安装es:把下载的es压缩包解压,放到自己的目录即可,然后进入es目录的bin目录下,双击:elasticsearch.bat,就可以启动es了,验证是否启动成功可以在浏览器访问:ht

2021-09-15 17:46:12 1419

原创 java解压zip包(包括空文件夹),并获取解压的文件树对象

记录一个java解压zip包的代码,没啥难度,就主要下面两个注意点:zip大多数是windows系统下,所以使用GBKCharset.forName("GBK")格式,不然会报错空文件夹不能用file.isDirectory()处理,网上大多数文档都是这么处理会有问题,具体详见代码import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.Req

2021-08-02 14:19:33 1894

原创 dubbo的请求全过程

前言前面看完了dubbo的服务发布和引用相关的内容本篇看一下dubbo的一个rpc调用的过程先一个debug用的demo:https://pan.baidu.com/s/1x88oqb0FBSLvq0wHfgIALA 密码: fcm1本文会基于这个demo的链路进行debug跟踪,之前的文章是基于dubbo的2.7.8版本的,这个demo是springboot集成的dubbo,版本是2.6.0,有一点小区别,但是不影响整体流程开始...

2021-02-22 22:03:51 2072 2

原创 dubbo的Directory服务目录

上一篇讲了dubbo服务调用集群容错路由负载的基本链路,之前也看过了服务引用的时候,会监听zookeeper的节点,如果zk节点有变动,会通知到:org.apache.dubbo.registry.integration.RegistryDirectory#notify之前在服务引用也大概讲过了refreshOverrideAndInvoker(providerURLs)方法这里我们从org.apache.dubbo.rpc.cluster.Directory接口开始看可以看到Directory服

2021-02-20 14:19:52 333

原创 dubbo的服务调用-集群容错和路由负载

前面看完了服务的引用:dubbo的服务引用在服务引用最终的就是生成了一个代理类,那么在调用某个被代理的接口时,实际上就是通过代理类去调用的,同时在实际调用之前做了容错、路由、负载等等。实际上每个调用都会从org.apache.dubbo.rpc.proxy.InvokerInvocationHandler#invoke代理在这个方法中,会把我们的目标Invoker和参数封装成org.apache.dubbo.rpc.RpcInvocation#RpcInvocation(java.lang.refle

2021-02-19 21:24:46 520

原创 dubbo的服务引用

分析完dubbo的服务发布再接着看看服务引用,和服务发布一样的,引用服务也是从配置文件开始:一. 配置文件开始<dubbo:reference id="demoService" interface="org.apache.dubbo.demo.service.DemoService" version="2.0.0" group="default"/>一般引用服务我们可以在xml中配置这样的代码,然后就能在代码中引用到这个服务接口了那么实际上他也

2021-02-18 22:02:05 477

原创 dubbo的zookeeper连接、创建节点、订阅

接着上一篇的dubbo的服务发布上一篇讲完dubbo的远程服务发布之后,到了org.apache.dubbo.registry.integration.RegistryProtocol#export的doLocalExport(originInvoker, providerUrl)调用之后,本篇看一下dubbo在远程服务发布完成之后对zookeeper的连接等操作一. 创建zk连接首先进入org.apache.dubbo.registry.integration.RegistryProtocol#g

2021-02-16 21:17:20 2158

原创 dubbo的服务发布

本篇了解一下dubbo的服务发布流程一. 从配置文件走起这个xml文件是dubbo提供的一个demo,用过dubbo的同学应该都了解这就是暴露一个接口demoService,那么这个接口如何暴露出去的呢?既然是配置了这个xml就能暴露出去,那么肯定是从xml文件的配置开始,上图圈出来的红框中,很明显看出来是用的schema定义的xml文件,不了解的同学可以百度一下:schema自定义配置这个关键词,了解下schema自定义配置相关知识,这里就不再讲了,提供一个参考链接:https://www.cnb

2021-02-15 16:39:40 1529 1

原创 dubbo和spring的整合

本章先简单写下dubbo在启动时是怎么同时整合spring容器的首先dubbo的启动是在:org.apache.dubbo.container.Main#main可以看到main方法中首先是肯定没有入参的,所以会去加载public static final String CONTAINER_KEY = "dubbo.container";这个key对应的配置,然后在dubbo的2.7.8版本中没有这个配置了,所以他会使用LOADER.getDefaultExtensionName()的默认值,那

2021-02-14 23:58:57 890 1

原创 dubbo的动态编译javassist

一. javassist简介Javassist是一个开源的分析、编辑和创建Java字节码的类库。是由东京技术学院的数学和计算机科学系的 Shigeru Chiba 所创建的。它已加入了开放源代码JBoss 应用服务器项目,通过使用Javassist对字节码操作为JBoss实现动态AOP框架。Javassist(JAVA编程ASSISTant)使Java字节码操作变得简单。 它是一个用Java编辑字节码的类库; 它使Java程序能够在运行时定义新类,并在JVM加载时修改类文件。 与其他类似的字节码编辑器不

2021-02-14 14:47:28 1231 4

原创 dubbo的SPI

一. SPI定义SPI 全称为 Service Provider Interface,一种服务发现机制。SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。正因此特性,我们可以很容易的通过 SPI 机制为我们的程序提供拓展功能。SPI 机制在第三方框架中也有所应用,比如mysql-connector包、spring-web包等,Dubbo 就是通过 SPI 机制加载所有的组件。不过,Dubbo 并未使用 Java 原生的 S

2021-02-13 15:57:19 1196 5

原创 Xxl-job源码解析-调度中心篇

写在前面:本篇讲一下xxl-job调度中心对于任务的调度部分的源码逻辑分析一. xxl-job简介XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用文档地址:https://www.xuxueli.com/xxl-job/git地址:https://github.com/xuxueli/xxl-job二. xxl-job的架构体系三. 调度中心本篇使用的源码是:2.3.0-SNAPSHOT版本调

2021-01-27 19:55:16 1319 1

原创 zookeeper源码下载和导入idea

**本篇介绍一下zookeeper的源码如何导入idea并进行查看**要学习源码肯定得先把源码下载下来打开看看吧一:首先是源码地址https://github.com/apache/zookeeper/tree/branch-3.5.5 这里以3.5.5分支为例,不要下载master分支,里面没有bulid.xml,后面ant编译不了下载之后解压到自己电脑的目录这里以win10为例,我解压到:E:\zookeeper-branch-3.5.5二:安装antant下载地址:https://a

2020-08-22 16:19:07 1296

原创 如何高逼格的写java代码

记录一些了解的高逼格、好用的java代码欢迎大家补充,共同学习

2020-06-16 16:58:21 4369 5

原创 红包领取算法

领取的逻辑中心思想逻辑是:每次领取的金额在 0.01和(剩余平均值*2)之间import java.util.Random;public class RedPackageUtil { public static double getRandomMoney(Integer remainSize, Double remainMoney) { // remainSize 剩余的红包数量 // remainMoney 剩余的钱 if (remain

2020-06-04 17:48:43 518

原创 使用腾讯云直播开发直播功能

前言:最近公司开发app直播功能,我是后端,使用java开发,经过考虑选择使用腾讯的云直播功能,主要是考虑到腾讯在这方面可以说是很有实力的了。然后就是选择产品的问题,腾讯提供了几种直播的解决方案,最完整的是互动直播,这是一套比较完善的直播解决方案,但是费用比较贵,所以。。。我们选择了云直播和云通信(IM)组合,主要是因为本来app中就集成云通信,也就是云直播用来做视频交互,云通信用来做弹幕和直...

2020-05-09 15:16:39 35571 42

原创 深入浅出Disruptor的使用和原理

1. Disruptor简介Disruptor git地址:https://github.com/LMAX-Exchange/disruptorDisruptor定义:线程间的高性能消息框架Disruptor核心思想:把多线程并发写的线程安全问题转化为线程本地写,即:不需要做同步2. Disruptor优点Disruptor非常轻量,整个框架最新版3.4.2也才70多个类,但性能却...

2020-04-28 17:18:58 1685 1

mac版java反编译

mac版本的java反编译class文件,下载打开双击就能用 mac版本的java反编译class文件,下载打开双击就能用

2020-09-22

java发送email邮件

需要依赖jar:<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency> <dependency> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> <version>1.1.1</version> </dependency>

2018-04-11

屏幕 吸色器

屏幕吸色器 可是吸取电脑屏幕的色值 前端开发必备啊 小巧好用 简单

2018-02-27

svn密码查看器

svn密码查看器 可以查看当前使用用户的密码 如果忘记密码可以使用查看

2018-02-27

PDF转word工具--免费

免费的PDF转word工具 一直在用的 上传上来给大家用 顺便赚点积分

2018-02-27

空空如也

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

TA关注的人

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