自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(124)
  • 资源 (10)
  • 收藏
  • 关注

原创 auto_increment 、雪花 id 和 uuid 做 MySQL 主键对比分析

在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究竟有什么坏处?本篇博客我们就来分析这个问题,探讨一下内部的原因。

2024-05-09 10:39:56 899

原创 flutter 命令

flutter 命令是Flutter框架提供的一个命令行工具,用于帮助开发者进行应用的开发、调试和部署。它包含了多个子命令,覆盖了从项目初始化到发布的整个流程。

2024-05-07 10:08:43 891

原创 借助三方工具ffmpeg.exe实现音频文件和背景音乐合成

借助三方工具ffmpeg.exe实现音频文件和背景音乐合成

2024-04-29 14:23:48 170

原创 Spring 之 MatchingStrategy

自Spring Framework 5.3版本起,引入了一个新的更高效的路径匹配策略PathPatternParser,它提供了更灵活和强大的匹配功能,比如精确控制匹配前缀、后缀以及捕获组等。例如,/api/users/**可以匹配到/api/users/123或/api/users/profile等任何以/api/users/开头的路径。4、路径参数增强:除了基本的路径变量匹配外,还支持更复杂的路径参数模式,例如可选参数、重复参数模式等。提供了更精细的控制选项,如忽略大小写匹配、严格模式匹配等。

2024-04-28 15:26:14 2778

原创 视频截屏(视频转图片)

视频文件截屏、截取指定时间的播放画面

2024-04-26 20:41:09 1127

原创 工程重命名(递归/模糊或精确替换目录和文件及文件中的名称)

/ 使用正确的 newFilePath 变量。// 递归处理子目录。// 处理未重命名但需要替换内容的文件。if (exists) { // 可以根据需要调整文件类型过滤条件。// 处理文件内容替换。* 支持模糊匹配和精确匹配。

2024-04-26 16:26:18 1047

原创 如何快速Copy/抓取一个完整的官网

【代码】如何完整的抓取一个官网/快速Copy一个官网。

2024-04-26 16:18:50 591

原创 Flutter 之 Widget

无论是简单的文本、按钮、图标,还是复杂的布局、列表、滑动容器,甚至包括动画效果、手势处理、主题样式等,一切都是以 Widget 的形式来实现和组织的。Widget 类通常包含一系列可设置的属性(通过构造函数参数),用于定制其外观、行为和与其他 Widget 或系统资源的交互。总的来说,Widget 是 Flutter 中用来构建和管理用户界面的核心概念,它封装了界面元素的结构、样式、行为以及响应状态变化的能力,通过组合和配置各种 Widget,开发者可以高效地构建出丰富多样的跨平台应用程序。

2024-04-25 14:04:49 964 2

原创 详解Linux中nginx如何重启、启动与停止

这篇文章主要给大家详细介绍了Linux中nginx如何重启、启动与停止/设置开机自启动。

2024-04-24 14:27:00 23762

原创 Java Persistence API (JPA) 之 EntityManager

总结来说,EntityManager 是 JPA 提供的一个强大而灵活的接口,它封装了与数据库交互的所有必要操作,包括实体的生命周期管理、查询执行、事务控制、缓存管理以及并发控制。EntityManager 提供了一系列方法,用于执行与对象-关系映射(ORM)相关的操作,如创建、读取、更新、删除(CRUD)实体对象,以及执行查询等。读取缓存:当通过 find()、getReference() 或查询方法加载实体时,如果一级缓存中已有相同标识符的实体,直接返回缓存中的实体,避免重复从数据库查询。

2024-04-24 11:46:11 3171 1

原创 jpa 和 mybatis 的优缺点

总结来说,JPA 更适合需要高度抽象、数据库无关性、自动化的 CRUD 操作和复杂查询的场景,尤其是大型企业级应用。灵活的 SQL 编写:MyBatis 允许开发者直接编写 SQL(存储在 XML 文件或注解中),可以充分利用数据库特性,编写高度优化的查询。对于复杂查询、批量操作、存储过程调用等场景,MyBatis 提供了更好的控制力。JPA(Java Persistence API)和 MyBatis 是两种广泛使用的 Java 持久化框架,它们各自具有独特的优点和适用场景。

2024-04-23 18:04:35 1090

原创 线程池 ThreadPoolExecutor 参数详解

提到 Java 线程池,就不得不说 ThreadPoolExecutor,它是 Java 并发包 java.util.concurrent 中的一个类,提供一个高效、稳定、灵活的线程池实现,用于实现多线程并发执行任务,提高应用程序的执行效率。当线程池中的线程数量超过 核心线程数 或者 允许核心线程超时 时,线程将使用此超时时间。如果当前池中有多于核心数量的线程,在等待这段时间而没有处理任务之后,多余的线程将会被终止。上述截图代码可以看出: 如果运行的线程数少于核心线程数,则为当前任务启动一个新的核心线程。

2024-04-22 20:30:36 1096

原创 mysql 5.7分组报错问题 Expression #1 of ORDER BY clause is not in GROUP BY clause

建议遵循 ONLY_FULL_GROUP_BY 规则,以确保查询的准确性和可维护性

2024-04-19 17:23:17 758

原创 解决navicat远程连接mysql 很慢(首次)

skip-name-resolve 解决navicat远程连接mysql 很慢(首次)

2024-04-19 14:43:58 1177

原创 mysql 删除数据的四种方法

在MySQL数据库中,删除数据是一个常见的操作,它允许从表中移除不再需要的数据。在执行删除操作时,需要谨慎,以免误删重要数据。DELETE语句DROP TABLE语句使用外键约束这些是MySQL中删除数据的主要方法。在执行删除操作时,请确保备份重要数据,以免意外删除。此外,根据您的需求选择适当的删除方法,以确保数据库的完整性和性能。如果不确定如何执行删除操作,建议在测试环境中进行测试,以避免在生产环境中发生意外。

2024-04-18 17:42:53 4314

原创 Spring WebFlux Mono 未按预期执行

当调用 subscribe() 时,不会立即执行 Mono 中的逻辑,而是注册了一个订阅者,实际的处理将在后台线程(如 Reactor 的调度线程)中异步进行。如果代码中仅创建了 Mono 实例而未显式或隐式调用 subscribe() 或其他触发订阅的方法(如 block()、flatMap()、thenReturn() 等),则 Mono 内部的逻辑将不会执行。代码执行顺序: 在某些复杂的异步场景中,可能由于代码逻辑安排不当,导致 subscribe() 调用发生在 Mono 创建或填充之后。

2024-04-17 16:39:51 1402

原创 spring webflux 小结

一个简单的处理请求和响应的抽象,用来适配不同HTTP服务容器的API。关于Spring MVC 和Spring WebFlux 测评很多,本文引用下做简单说明。参考:《基本依赖-- r2dbc 连接池 -->--r2dbc mysql 库-->--自动配置需要引入一个嵌入式数据库类型对象-->-- 反应方程式 web 框架 webflux-->相同数据下效果如下;Spring MVC + JDBC 在低并发下表现最好,但 WebFlux + R2DBC 在高并发下每个处理请求使用的内存最少。

2024-04-16 16:07:11 1538

原创 Mysql5.7 yum 简单/快速安装

mysql yum 快速简单安装

2024-04-01 19:48:09 1766

原创 linux yum install jdk如何查找安装目录并配置环境变量

所以openJDK11的安装路径是:/usr/lib/jvm/java-11-openjdk-11.0.15.0.9-2.el7_9.x86_64/,下面可以编辑profile文件配置环境变量了。Linux服务已安装jdk1.8,此时需要在该服务器部署的应用要求依赖openJDK11,可按照以下命令进行安装openJDK11。,输出的是openjdk11,说明默认运行的是openjdk11,如果应用环境需要依赖jdk1.8需要指定jdk1.8路径。如果能查找到安装包,执行以下安装命令进行安装。

2024-03-31 09:50:15 754

原创 linux redis 快速安装

/保护模式下,仅本机可以访问。//设置所有ip可以访问。

2024-03-31 09:29:18 316

原创 @EnableWebMvc 导致自定义序列化器失效

在使用Swagger的时候用 到了@EnableWebMvc,发现之前为了解决Long类型、日期类型等自定义序列化器失效了@Bean.select().build();Swagger3/2+Spring boot 使用小结_spring boot3 + swagger3-CSDN博客我们有时候,可能需要自定义一个序列化器来满足自己的需要,但是如果项目中不正确使用了注解,可能会导致这个自定义的序列化器失效。首先我们应该看下这个注解是拿来干啥的吧。项目中,如果我们希望自定义一些MVC。

2024-03-27 15:15:50 1414

原创 Swagger3/2+Spring boot 使用小结

Swagger 是一个 RESTful API 的开源框架,它的主要目的是帮助开发者设计、构建、文档化和测试 Web API。Swagger 的核心思想是通过定义和描述 API 的规范、结构和交互方式,以提高 API 的可读性、可靠性和易用性,同时降低 API 开发的难度和开发者之间的沟通成本。其实OpenAPI规范(也称为 Swagger 3.x 规范)是一种用于描述RESTful API的标准化格式,它定义了如何描述API的基本信息、结构、参数、响应等方面的规范。

2024-03-20 11:11:35 1039

原创 通过spring boot/redis/aspect 防止表单重复提交【防抖】

所谓防抖,一是防用户手抖,二是防网络抖动。在Web系统中,表单提交是一个非常常见的功能,如果不加控制,容易因为用户的误操作或网络延迟导致同一请求被发送多次,进而生成重复的数据记录。滚动加载类接口:比如下拉刷新、上拉加载更多等,用户可能在滚动过程中频繁触发接口请求,但是每次触发并不一定需要立即发送请求,可以等待用户停止滚动一段时间后再发送请求。用户输入类接口:比如搜索框输入、表单输入等,用户输入往往会频繁触发接口请求,但是每次触发并不一定需要立即发送请求,可以等待用户完成输入一段时间后再发送请求。

2024-03-15 20:05:40 613

原创 微服务超大Excel文件导出方案优化

微服务超大Excel文件导出方案优化(异步/拆分/压缩)

2024-03-08 17:26:11 671

原创 spring.factories 和@ComponentScan的使用小结

是一种基于SPI(Service Provider Interface)的机制,用于自动配置和加载组件。SPI是一种Java扩展机制,允许应用程序在运行时动态加载实现特定接口的组件。在Spring Boot项目中,文件中,可以配置各种自动配置类、扩展点和插件,Spring Boot在启动时会通过这个文件自动加载这些组件,实现自动配置和扩展功能。这种基于SPI的机制可以帮助简化应用程序的配置和扩展,提高开发效率和灵活性。文件通常用于定义各种自动配置类、扩展点和插件,以实现自动配置和加载功能。

2024-02-23 19:42:40 548

原创 通过闭包表解决无限极代理分销

无限极分销,关系表

2024-02-20 14:34:16 487

原创 通过Spring @Validated 更优雅的实现参数校验

通过Spring @Validated 更优雅的实现参数校验

2024-02-08 00:50:32 461

原创 Spring Cloud+SkyWalking全链路监控部署及使用分享

Spring Cloud+SkyWalking全链路监控部署及使用分享

2024-01-25 11:06:15 1162 1

原创 rocketmq 集群环境部署及与spring cloud 集成

rocketmq 集群环境部署及与spring cloud 集成

2023-11-29 11:24:47 1322

原创 MySQL 案例:update set 和 and 的坑

由此可见,MySQL 在语法上,并不认为 and 这个用法是错误的,那么说明 MySQL 用另外的方式“解读”了这个语句。最容易想到的,就是 MySQL 是不是在 set 的时候,把 and 解释成了逻辑运算符,而不是英文意义上的“和”?可以看到这两个语句确实都不会报错,且带 and 的 update 语句匹配到了具体的行(Rows matched: 1),但是没有修改数据(Changed: 0),标准语法下的 update 语句倒是正常修改了数据。,实际构造一个简单的场景,尝试复现一下这个问题。

2023-11-06 10:49:59 2057

原创 JAVA 实现加权轮询算法:有权重,按权重轮询,无权重随机分配

【代码】JAVA 实现加权轮询算法:有权重,按权重轮询,无权重随机分配。

2023-08-10 09:23:40 398

原创 Java前后端交互long类型溢出的解决方案

long 精度溢出

2023-07-24 10:25:51 1125

原创 spring cloud feign 开启gzip及Illegal character ((CTRL-CHAR, code 31))异常处理

min-response-size:默认2k(2048)按需配置。#mime-types: 按需配置。

2023-07-08 15:00:11 515

原创 记录一次性能调优

现状:交易接口,并发10笔每秒都不能100%超过,存在响应超时或者连接超时,但服务节点看着很正常没有任何错误信息,太夸张了。服务:测试环境/spring cloud/mysql linux 4*16G/nacos/单节点/固定带宽5M。

2023-05-08 16:43:38 88

原创 OAuth2.0 详解

OAuth2.0 的授权简单理解其实就是获取令牌(token)的过程,OAuth 协议定义了四种获得令牌的授权方式(authorization grant ):授权码(authorization-code)、简单式(implicit)、密码式(password)、客户端凭证(client credentials),一般常用的是授权码和密码模式。发布于 2022-05-04 18:16。

2023-01-13 09:24:39 2009

原创 【多级分销,如何更有效的查找上级/下级】

多级分销,如何更有效的查找上级/下级

2022-07-15 17:25:09 507

原创 Spring Cloud 集成 Sleuth+Zipkin+Mysql

1 配置 Zipkin-Server 现在的版本(2.23.16)已经可以直接运行官方提供的jar,不需要单独去写这个服务了,下载地址启动命令:STORAGE_TYPE=mysql MYSQL_HOST=127.0.0.1 MYSQL_TCP_PORT=3306 MYSQL_DB=db_zipkin_log MYSQL_USER=root MYSQL_PASS=root nohup java -jar -Xms512m -Xmx1024m zipkin-server-2.23.16-exe.

2022-03-30 15:53:02 1169

原创 Git Flow 的正确使用姿势

Git Flow 的概念在使用Git的过程中如果没有清晰流程和规划,否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护。Git版本管理同样需要一个清晰的流程和规范。Vincent Driessen 为了解决这个问题提出了 A Successful Git Branching Model以下是基于Vincent Driessen提出的Git Flow 流程图Git Flow 的常用分支 Production 分支 也就是我们经常使用的Master...

2021-01-20 10:33:20 142

转载 Linux下查看日志用到的常用命令

Linux下查看日志用到的常用命令杀僵尸进程部分程序员,肯定喜欢下面命令:  ps -ef | grep java (先查java进程ID)  kill -9 PID(生产环境谨慎使用)kill、killall、pkill命令的区别  kill:通过pid来杀死进程  killall (killall [参数] [进程名]):Linux系统中的killall命令用于杀死指定名字的进程(kill processes by name)。我们可以使用kill命令杀死指定进程PID的进程..

2021-01-05 09:51:48 329

原创 Arthas 开源 Java 诊断工具(服务器反编译class)

arthas 使用服务器环境编译类#1、进入arthas目录cd /root/arthas-packaging-3.3.9-bin#2、执行arthas命令java -jar arthas-boot.jar#3、找到自己需要进入的java进程,输入对应前面的序号【比如 1】1#4、查询自己所找的对应的类加载器hash码【后继用于编译】,比如我要找的类为com.tansun.tcp.sys.msg.action.BaseMsgSysAction输入下方命令:sc -d com.

2020-09-27 16:36:33 2300

SVN版本控制方案

规范如何使用SVN trunk branch tag

2016-01-15

Java多张小图合成一张大图

java 程序将多张小图合成一张大图 适合css样式将多个小图合成大图

2014-02-24

Java关于时间调度的几种实现方(Timer Quartz Spring)

Java关于时间调度的几种实现方(Timer TimerTask Quartz Spring)

2014-02-18

JSP自定义分页标签 extends TagSupport

JSP自定义分页标签 extends TagSupport 多种分页风格无需额外资源,使用简单易懂:WebRoot/WEB-INF/tms-tags.tld 文件路径

2014-02-18

PowerDesigner反向工程将数据库设计导出SQL脚本、HTML或World

PowerDesigner反向工程将数据库设计导出: 1 导出SQL脚本 2 导出HTML用以展示模型效果 3 RTF(WORD)或者其他

2012-05-14

局域网聊天和文件传输[Java源码]

局域网 聊天和文件传输[Java源码]: JavaSE技术: Swing编程 Socket通讯 多线程 IO流 等等!

2012-05-14

oracle网络配置(连接非本机oracle服务器)

oracle网络配置(连接非本机oracle服务器)

2011-09-09

javascript日期、时间大小的比较

javaScript中实现时间、日期大小的比较 主要是用于在使用日期控件时比较您选择的时间是否大于系统当前时间.....

2010-05-08

struts2文件上传、下载

实现struts2中文件上传于下载及所要主意的地方.... 如:文件类型文件大小的控制等....

2010-05-08

从n个整数中查找出现频率最高的所有整数(用java实现)

从n个整数中查找出现频率最高的所有整数(用java实现)

2009-03-25

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

TA关注的人

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