自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (1)
  • 收藏
  • 关注

原创 分布式锁及实现方案

锁是在多线程环境下,实现多线程访问同一共享资源时,保证在任何给定时刻只有一个线程可访问共享资源所做的一种标记。而分布式锁是当多个进程不在同一个系统中,用分布式锁控制多个进程对资源的访问。

2024-06-21 15:09:41 984

原创 SpringBoot自动装配过程

Spring和SpringBoot最大的区别就在于:SpringBoot自动注册Bean以及初始化组件,简化我们的开发,实现真正的自动装配

2024-06-21 15:09:06 434

原创 炫技Groovy!SpringBoot中的动态编程

在我们日常的开发过程中,经常会遇到一些功能的逻辑变更很频繁的需求,本文分享的就是利用Groovy脚本在Spring Boot项目中实现动态编程解决这一问题,使业务逻辑的动态化,极大地提升了开发效率

2024-06-05 16:37:28 408

原创 MyBatis初始化基本过程

MyBatis初始化方式 MyBatis初始化提供了两种方式: 基于XML配置文件和基于Java API,本文主要基于XML配置文件的方式,来深入讨论MyBatis是如何初始化的

2024-06-05 16:35:50 795

原创 什么是泛型类型擦除

泛型本质上是一种参数类型,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。

2024-04-12 16:36:30 392

原创 简单实现服务端实时推送消息

最近工作中这样一个需求,在商城首页需要实时展示每个品类商品的成交量,即客户端需要实时获取服务端消息,本文就主要介绍一种简单实现方案SSE

2024-04-12 16:35:20 279

原创 彻底搞懂ScheduledThreadPoolExecutor

在很多业务场景中,我们可能需要周期性的运行某项任务来获取结果,本文主要分享支持周期性任务调度的线程池ScheduledThreadPoolExecutor

2024-04-08 14:49:45 966

原创 缓存双写一致性的套路

对于缓存可能很多小伙伴会有疑问,到底是更新缓存还是删除缓存? 到底是先更新数据库,再删除缓存,还是先删除缓存,再更新数据库

2024-04-07 14:13:30 668

原创 基于Spring Aop+SpEL优雅地记录操作日志

在我们工作的日常开发中,我们经常会遇到需要记录用户的操作日志的需求,这个需求本身不是很难,但是如何让操作日志不和业务逻辑耦合?如何优雅的记录操作日志?

2024-04-02 16:28:37 696

原创 彻底搞懂Spring IOC

IOC(Inversion of Control),即控制反转,Spring IOC容器管理了定义的各种Bean对象及其相互的关系,降低了耦合度

2024-04-02 16:08:00 375

原创 RabbitMQ延时任务:订单超时取消

在电商项目中,我们经常会遇到这样的需求:客户下单成功后,在一定的时间内未能按时(具体时间由业务规则决定)支付,需要将订单自动取消,释放占用的商品库存。类似于这样的需求(延时任务),我们该怎样解决呢?

2024-04-02 15:59:15 518

原创 彻底搞懂JAVA SPI

SPI(Service Provider Interface)是JDK内置的一种服务提供发现机制,这种机制通常用于插件架构或模块化系统,使得开发者可以轻松地添加或替换系统中的组件

2024-04-02 15:56:30 380

原创 彻底搞懂Spring AOP

AOP(Aspect Oriented Programming)是一种面向切面的编程思想 Spring AOP 作为Spring最核心的能力之一,基于动态代理

2024-04-02 15:52:49 910

原创 彻底搞懂CGLIB代理

CGLIB是一个强大的高性能的代码生成库,它使用运行时字节码操作,可以动态创建类或修改现有类,CGLIB动态代理的主要优点是可以对任何类进行动态代理,不需要实现任何接口

2024-04-02 15:45:52 719

原创 玩转SpringBoot动态定时任务(启动、暂停)

最近在做一个项目,需要用到动态定时任务,现在比较普遍的做法是集成第三方框架(例如Quartz、XXL-JOB),但是基于项目本身的复杂度和使用场景,使用springBoot自身带有的定时任务框架来实现

2024-04-02 14:47:41 863

原创 彻底搞懂JDK动态代理

本文介绍了JDK动态代理的基本原理、创建步骤及其原理。动态代理提供了在运行时动态改变目标对象行为的能力,广泛应用于AOP编程、远程方法调用和测试框架等领域。虽然性能开销较大,但其简单易用

2024-04-02 14:45:49 406

原创 Zip、Rar文件解压

一、ZIP文件解压借用第三方工具解压Zip4J, Zip4J是一个开源的 Java 处理 zip 压缩文件的开发包。Zip4J功能比较完备,这里只用了简单的解压 1.导入依赖<dependency> <groupId>net.lingala.zip4j</groupId> <artifactId>zip4j</artifactId> <version>1.3.2</version&g...

2020-11-03 15:15:18 1007

原创 Redis主从+哨兵的搭建

一、原理简单说明主从复制:主节点负责写数据,从节点负责读数据,主节点定期把数据同步到从节点保证数据的一致性 哨兵机制(sentinel):当主节点出现故障时,由Redis Sentinel自动完成故障发现和转移,并通知应用方,实现高可用性。二、Redis的安装这里就不详细说怎么安装redis,不会的可以去搜一下,网上有一大堆写的很好的。我这里是用docker安装的redis。三、部署方案 role ip port ma

2020-05-18 15:31:20 198

原创 Mybatis(2)--SQL执行流程源码分析

开始之前我们需要一个springBoot+mybatis项目,这我就不写了,然后写一个测试类:import com.tanxiong.entity.OrgAccountEntity;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.iba...

2019-08-19 14:30:29 165

原创 Mybatis(1)--Mybatis架构分析

MyBatis的框架设计SqlSession执行流程: 注:本文主要参考了《深入理解mybatis原理》 MyBatis的架构设计以及实例分析...

2019-08-14 16:06:25 135

原创 Java中break标记、continue的使用方法

break适用范围:只能用于switch或者是循环语句中。break作用:1. break用于switch语句的作用是结束一个switch语句。2. break用于循环语句中的作用是结束当前所在的循环语句。示例1:普通的break public static void main(String[] args) { for(int i=0;i<3;i++){...

2019-07-16 11:36:25 589

HtmlUtils.java

通过该工具类实现对HTML文件标签中的相对路径转化为绝对路径,里面有测试类

2019-07-04

空空如也

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

TA关注的人

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