自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux命令大全

工作中或多或少都会用到Linux服务器,我为大家分享一下常用命令。

2025-05-20 17:43:39 384

原创 Spring依赖注入注解详解:@Autowired、@Resource、@Inject

前言:在Spring框架中,依赖注入(DI)是实现松耦合的核心机制之一。结尾:通过合理选择注解,可以更高效地管理依赖关系。:Spring通过三级缓存解决,但应避免设计上的循环依赖。需要与Java生态兼容(如CDI、Quarkus等框架)。Java标准注解(JSR-250),优先按名称(非Spring项目(如J2EE)中需要依赖注入。Spring原生注解,默认按类型匹配Bean。需要显式指定Bean名称时(如多数据源配置)。Java标准注解(JSR-330),功能与。属性)匹配,失败后按类型。

2025-05-20 16:28:09 369

原创 PageHelper和Mybatis-Plus分页区别原理

对比项PageHelper触发方式静态方法显式传入Page<T>对象SQL修改时机运行时拦截并重写 SQL在调用 Mapper 方法前生成分页 SQL耦合性与 MyBatis 解耦,可单独使用深度集成 MyBatis-Plus,需继承BaseMapper多表联查支持需手动处理 COUNT 查询自动优化 COUNT 查询(但复杂 SQL 可能需手动干预)性能简单场景高效,复杂 SQL 可能需优化内置智能优化,适合多数场景PageHelper更适合灵活、低侵入的分页需求,而。

2025-05-20 10:25:11 400

原创 Windows环境安装LibreOffice实现word转pdf

最近在工作中遇到了一个需求要实现word转pdf,本来我在上一个公司使用aspose.words工具使用的得心应手,都已经把功能点实现了,两句代码轻轻松松,但是被告知不能用商业版的东西,公司要求只能用开源的,那么只有另想办法,想过通过word转图片再转pdf但是实现出来的效果没有想象中那么好,果断放弃,最终斟酌了一下用了libreoffice,那么下面为大家分享一下;

2025-05-19 11:44:43 825

原创 (一)丶Windows安装RabbitMQ可能会遇到的问题

1.找到C盘目下的.erlang.cookie文件。替换完毕执行下面命令,出现第二张图内容即可!将两个目录下的内容替换为一致即可;

2025-03-21 14:54:22 564

原创 达梦数据库(十一) -------- 使用达梦导出完整的表结构和数据

选择自己想要导出的数据库。所以数据导入到一张表。接着下一步下一步就行了。

2024-11-21 16:02:28 1494

原创 JAVA工具----自动化API文档APIFOX

前言:想必大家在后端开发的过程过,最烦的就是写接口文档了。然而如果是对接前写,就更加烦躁,可能之前写好的接口文档全都要改,还会占用大量的时间,一般的小团队也耗不起这样的费时。那么使用Swagger和侵入式注解这些方法,都需要我们在接口上打上注解,而且难免会有遗漏,而且过多的注解对我们的代码可读性来说很不友好;

2024-09-09 15:32:35 900

原创 什么是Hash冲突?如何解决Hash冲突?

Hash冲突是指在哈希表中,不同的关键字通过哈希函数计算得到的哈希值却相同的情况。这种情况会导致哈希表的性能下降,因为哈希表需要在同一位置上存储多个数据。

2024-09-05 14:55:54 728

原创 Java的时间复杂度和空间复杂度和常见排序

简介:时间复杂度和空间复杂度是评估算法性能的两个重要指标,他们分别用于衡量算法执行时间长短和算法所存储空间大小;

2024-09-04 15:25:52 1192

原创 Mysql剖析(四)----Mysql的行锁、表锁、间隙锁详解

简介:编程中的锁是一种同步机制,用于控制对共享资源的访问,确保同一时间只有一个线程可以访问共享资源,从而避免竞态条件和其他并发问题,保证线程安全和正确的数据访问。锁的概念来源于日常生活,其中锁和钥匙用于控制对某个空间的访问,确保安全隐私。在编程中,锁用于控制对共享资源访问,防止多个线程同一时间修改同一数据,从而引发数据不一致的问题。锁的实现方式多种多样,包括悲观锁和乐观锁等,具体选用哪种取决于应用程序的特定需求和并发控制的复杂性。

2024-08-29 16:47:24 1606

原创 Mysql剖析(三)----MySql的事务详解

事务(Transaction):一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中的各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如SQL、C++或Java)书写的用户程序的执行所引起的,并用形如Begin Transaction 或 End Transation语句(或者函数调用)来界定。事务由事务开始(Begin Transation)和事务结束(End Transation)之间执行的全体操作组成。

2024-08-28 15:30:45 1216

原创 Mysql剖析(二)----Mysql的InnoDB存储引擎

简介:InnoDB是Mysql数据库管理系统中的一种存储引擎,他是Mysql的默认存储引擎之一。InnoDB的最大特色是支持了ACID兼容的事务功能,类似于postgreSQL,提供了行级锁和多版本并发控制等高级特性。与传统的ISAM和MyISAM相比,InnoDB具有更好的性能和可靠性,是事务型数据库的首选引擎。InnoDB是为处理巨大数据量时的最大性能设计的,完全与Mysql服务器整合,维持他自己的缓冲池以在内存中缓存数据和索引,InnoDB采用双轨制授权,包括GPL授权和专有软件授权。

2024-08-27 16:34:46 644

原创 Mysql剖析(一)----简述MYSQL聚簇索引、二级索引、索引下推

除了聚簇(主键)索引之外的所有索引都成为二级索引也就是非主键索引,二级索引的叶子节点内容是主键的值,主键长度越小,二级索引的叶子节点就越小,占用的空间也就越小;如果查询的字段是除了索引字段,还包含其他的字段,则通过辅助索引查找到主键,在通过主键到聚簇索引中查找对应的数据(也就是回表),可以通过聚簇索引和默认的索引下推机制可以避免回表;聚簇索引并不是一种单独的索引类型,而是一种数据存储方式,就是按照每张表的主键构造一颗B+树,同时叶子节点存放的就是整张表的行记录数据,所以主键索引就默认使用到了聚簇索引;

2024-08-27 16:31:00 978

原创 Mysql的InnoDB存储引擎

简介:InnoDB是Mysql数据库管理系统中的一种存储引擎,他是Mysql的默认存储引擎之一。InnoDB的最大特色是支持了ACID兼容的事务功能,类似于postgreSQL,提供了行级锁和多版本并发控制等高级特性。与传统的ISAM和MyISAM相比,InnoDB具有更好的性能和可靠性,是事务型数据库的首选引擎。InnoDB是为处理巨大数据量时的最大性能设计的,完全与Mysql服务器整合,维持他自己的缓冲池以在内存中缓存数据和索引,InnoDB采用双轨制授权,包括GPL授权和专有软件授权。

2024-08-27 16:28:34 1056

原创 HashMap源码剖析

HashMap简介:HashMap是一个基于哈希表的Map接口实现,它提供了所有可选的映射操作,并允许使用null值和null键。HashMap是非线程完全的,这意味着在多线程环境下可能会存在问题,HashMap的设计思路是假定哈希函数将元素正确分布在各桶之间,为基本操作(如get和put)提供共稳定的性能。和。初始容量是哈希表在创建时的容量,而加载因子是哈希表在其容量自动增加之前可以达到多满的一种尺度。

2024-08-26 17:34:42 759

原创 简述MYSQL聚簇索引、二级索引、索引下推

它是在数据查询的过程中,将通常由用户查询表达式处理的计算任务下推到数据存储层,比如从磁盘或内存的索引结构中直接完成部分计算,而不是等到所有的数据都被加载到内存后再进行处理。除了聚簇(主键)索引之外的所有索引都成为二级索引也就是非主键索引,二级索引的叶子节点内容是主键的值,主键长度越小,二级索引的叶子节点就越小,占用的空间也就越小;聚簇索引并不是一种单独的索引类型,而是一种数据存储方式,就是按照每张表的主键构造一颗B+树,同时叶子节点存放的就是整张表的行记录数据,所以主键索引就默认使用到了聚簇索引;

2024-08-09 10:53:05 922

原创 SpringBoot获取resources文件夹下文件并且实现下载

将需要频繁下载,并且又不会被轻易修改的文件,放在。

2024-08-09 09:59:15 1259 1

原创 达梦数据库(十) -------- mybatis-plus 整合达梦时,自动生成的 sql 语句报错

问题原因:mybatis-plus 生成的 sql 语句字段是小写的,同时还包含数据库关键字。框架会默认加上(`)符号,该符号在达梦数据库中无法被识别,需要更换为 (")。方案二:修改实体类的字段名称避免使用达梦数据库关键字。

2024-08-09 09:47:03 1209

原创 达梦数据库(九) -------- JAVA 的连接配置方式

在部分云环境下在配置达梦的数据库连接时,由于云环境无法配置/etc/dm_svc.conf 文件,针对集群的连接就无法配置服务名了。在应用程序所在服务器上配置 dm_svc.conf 文件。在 dm_svc.conf 文件中配置服务名。Windows 平台 dm_svc.conf 文件位。Linux 平台 dm_svc.conf 文件位于。,通过服务名连接集群可实现故障自动重连。在 dm_svc.conf 文件中配置。

2024-08-08 14:58:46 1059

原创 达梦数据库(八) -------- JDK 包和驱动不匹配

错误提示:/driver dm.jdbc.driver.DmDriver is not sequoia compliant。更换 JDK 包就可以了。连接池的连接问题:连接要使用 DM 安装数据库后自带的 JDK 包。前言:这个错误是我遇到了之后去达梦官方文档看到解决的,朋友也也可以直接去官网看看。Linux 环境下一般 jar 包都在。Windows 在安装目录的。

2024-08-08 14:53:43 850

原创 达梦数据库(六) -------- 达梦数据库只导出表结构不导出数据

如下图所示:选择需要导出结构的表,如下图所示:迁移完成,表结构已经导出,如下图所示:DTS 同样可以将表结构迁移至其他数据库中或者从其他数据库迁移至 DM 数据库中;例如:MYSQL-DM,mongodb-DM;

2024-08-08 14:43:20 2946 1

原创 ThreadLocal 详解(三)内存泄露原因,以及强弱引用

在没有手动回收Entry以及CurrentThread依然运行的前提下,始终有强引用链 CurrentThread Ref -> CurrentThread -> ThreadLocalMap -> entryEntry就不会被回收( Entry中包括了ThreadLocal实例和value), 导致Entry内存泄漏。对于第一点:只有使用完Threadlocal,调用其remove()删除对应对的Entry,可以避免内存泄漏;

2024-08-08 11:53:37 961

原创 ThreadLocal 详解(二)ThreadLocal的原理

Threadlocal的原理涉及两个方面:Threadlocal实例和ThreadlocalMap;这是我画的草图。

2024-08-08 11:35:49 831

原创 ThreadLocal 详解(一)

Threadlocal叫做线程变量,意思是Treadlocal中填充的变量数据当前线程,该变量对其他线程而言是隔离的,并且变量在整个的生命周期有效。Threadlocal会为每个线程中都创建一个副本,那么每个线程可以访问自己内部的副本变量。Threadlocal内部通过Ma来存储每一个线程的变量副本,Map的Key就是当前的Threadlocal,Value值就是我们set的那个值,每次线程在get时候,都从自己的变量中取值,所以不会存在线程安全问题;

2024-08-07 11:28:38 897

原创 Spring Cloud Gateway 响应数据加密

实现了请求的解密和响应的加密,‌主要使用的是Hutool工具类中的AES加密算法。‌这种加密方式不仅用于请求数据的解密,‌还用于响应数据的加密。‌具体来说,‌Spring Cloud Gateway的加密和解密流程包括以下几个步骤:‌。通过这种方式,‌Spring Cloud Gateway确保了客户端和服务器之间的通信安全,‌防止数据被截获或篡改,‌同时也提供了一个有效的机制来验证通信双方的身份。Gateway响应数据加密:如下,只有返回数据为json才加密,对于下载还是返回的流这些都不做处理加密;

2024-07-16 14:13:42 1163

原创 Java通过HttpClient实现请求接口发送文件

【代码】Java通过HttpClient实现请求接口发送文件。

2024-06-27 17:30:45 509

原创 使用 Java 8 的新特性(DateTime)来管理日期和时间

前言在 Java 中,日期和时间处理的核心类位于 java.time 包下,Java 8 引入了新的日期和时间 API,主要包括以下几个关键类:LocalDate:用于表示日期,不包含时间信息,例如:2023-09-03。LocalTime:用于表示时间,不包含日期信息,例如:15:30:45。LocalDateTime:用于表示日期和时间,不包含时区信息,例如:2023-09-03T15:30:45。

2024-06-27 17:26:22 850

原创 Kafka入门到精通(四)-SpringBoot+Kafka

这里有个坑,ConsumerRecord如果不加s会报错,我之间在借鉴他人代码的时候出现的,不知道是不是版本问题。我也刚用kafka,正在研究哈哈,见谅见谅;

2024-06-27 16:09:52 675

原创 Kafka入门到精通(三)-Kafka

Kafka是由开发的一个开源流处理平台,由和编写。Kafka是一种高的分布式消息系统,它可以处理消费者在网站中的所有数据。这种动作(,搜索和其他用户的行动)是在现代网络上的许多的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像一样的日志数据和系统,但又要求的限制,这是一个可行的解决方案。Kafka的目的是通过的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。

2024-06-27 14:21:44 1256

原创 Kafka入门到精通(二)-安装Zookeeper

Zookeeper是一个开源的分布式协调服务,由Apache维护,旨在为分布式系统提供一致性、可靠性和高效的数据管理。它通过提供一系列简单易用的接口,封装了复杂且易出错的分布式一致性服务,构成了一个高效可靠的原语集。Zookeeper的设计目标包括提供高性能、高可用且具有严格顺序访问控制能力的分布式协调服务。顺序一致性:确保从一个客户端发起的事务请求最终会严格按照其发起顺序被应用到Zookeeper中。原子性。

2024-06-27 12:05:41 1113

原创 Kafka入门到精通(一)-安装Scala

Scala 是 Scalable Language 的简写,意味着这种语言设计上支持大规模软件开发,是一门多范式的编程语言,Scala 语言是由 Martin Odersky 等人在 2003 年开发的,并于 2004 年首次发布。Scala 运行于 Java 平台(Java 虚拟机),并兼容现有的 Java 程序。Scala 的编译模型(独立编译,动态类加载)与 Java 和 C# 一样,所以 Scala 代码可以调用 Java 类库(对于.NET实现则可调用.NET类库)。

2024-06-27 11:49:05 873

原创 JAVA生成压缩包 的同时在创建一层文件夹

前言:在Java开发中,有时候我们需要将一些文件或文件夹打包成zip压缩包,以便运输或存储。而有时候,我们还需要在压缩包内创建文件夹来存放不用的文件类型,本文将提供给用户打包压缩包同时提供,创建一层文件夹的方法;

2024-06-25 14:15:43 555

原创 达梦数据库(七) -------- 数据迁移MYSQL->达梦数据库

确保安装好达梦数据库,

2024-05-31 16:37:11 843

原创 达梦数据库(五) -------- 达梦数据库+mybatisPlus+springboot

​前言:安装完达梦数据库后,需要初始化实例,在初始化实例时,需要注意大小写敏感的设置。大小写敏感只能在初始化数据库的时候设置,默认为大小写敏感,一旦设置成功就无法修改,如果想要修改,只能重新初始化实例。​

2024-05-30 17:14:47 2715

原创 Redis(三) Linux 上操作

概述:Redis是一个高性能的键值存储系统,常用于缓存、队列和发布/订阅系统。在Linux环境下,连接Redis并输入密码,可以使用Redis的命令行工具redis-cli来实现。上一篇文章我们介绍了安装redis以及可视化工具的使用,本文将介绍如何在linux上链接Redis并输入密码的流程,以及基本操作;其中,是Redis服务器的主机名或IP地址,是Redis服务器的端口号,默认为6379。这里的 是Redis服务器的密码。

2024-05-16 11:59:38 1715

原创 工作常用的Linux命令给自己做个记录

【代码】工作常用的Linux命令给自己做个记录。

2024-05-08 10:44:36 139

原创 Synchronized简述

重量级锁:轻量级锁时通过自旋的方式争抢锁,并且适用于线程持有锁的时间不长的情况下(因为阻塞线程需要进行CPU状态,代价太大,所以自旋),当线程的自旋次数超过阈值(默认情况下是10)的时候为了防止cpu空转,会将自旋锁升级为重量级锁,并且将没有获取锁的线程进行阻塞;轻量级锁:当另外一个线程B获取锁时,发现锁一级处于偏向锁状态,此时线程B会用过CAS的方式尝试性争抢锁【修改对象头中的线程ID】(判断线程A是否存活,存活就不能进行修改),如果偏向锁抢锁失败,择偏向锁就升级为轻量级锁,如果抢锁成功则执行代码;

2024-04-12 15:39:46 457

原创 @Autowired和@Resource区别

Resource按照名称进行装配哦,名称可以通过name属性进行制定,如果没有name属性,当注解卸载字段上时,默认取字段名称进行名称查找。如果注解写在setter方法上默认取属性名称进行装配。依赖的注入功能,是通过在SpringIOC容器(单例池),中查询对象,再讲对象引入到当前类中,而查找又分别存在两种方式:按照名称查找(byName)和按照类型查找(byType)应用地方不同:@Autowried,应用在构造器、参数、方法、成员变量和注解上,@resource,则能用在类、成员变量、方法上。

2024-04-10 17:46:43 471

原创 (二)ffmpeg的相关命令,以及JAVA操作ffmpeg

二、常用操作视频命令 1.视频压缩 2.视频拼接 3.截取视频第一帧或者某一帧 4.图片转视频 4.图片格式转化三、java操作ffmpeg录制视频 1.相关代码 2.开始录制 3.结束录制 4.合并视频 5.其他操作结尾:干活满满,喜欢就点个赞收藏吧

2024-03-19 14:23:18 1071

原创 (一)Linux+Windows下安装ffmpeg

FFmpeg是一个开源的音视频处理工具集,由多个命令行工具组成。它可以在跨平台的环境中处理、转换、编辑和流媒体处理音视频文件。FFmpeg支持多种常见的音视频格式和编解码器,可以对音视频文件进行编码、解码、转码、剪辑、合并等操作。格式转换: FFmpeg可以将音视频文件从一种格式转换为另一种格式。无论是不同的容器格式(如MP4、AVI、MKV)还是不同的编解码器(如H.264、HEVC、AAC),FFmpeg都可以进行转换。

2024-03-19 11:54:55 973

xshell安装包,操作linux系统

xshell安装包,操作linux系统

2024-11-21

JDK8安装包,为各位学习的朋友免费提供

JDK8安装包

2024-11-21

aspose包.zip

Java-Aspose主要用作文档或者excel替换

2022-04-27

空空如也

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

TA关注的人

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