- 博客(36)
- 收藏
- 关注
原创 Spring Boot性能提升的核武器,速度提升500%!
虚拟线程是 Java 21 引入的一个新特性,用于简化并发编程。它与传统的操作系统线程相比,具有显著的优势:轻量级:虚拟线程由 JVM 管理,而非操作系统,因此它们的内存占用和创建成本远低于传统线程。理论上,你可以轻松创建数十万甚至更多的虚拟线程。高并发性:虚拟线程能处理更高并发的场景,特别是 I/O 密集型的应用,适合开发高并发、响应式的应用程序。自动管理:无需手动管理线程池,JVM 会根据负载自动调整虚拟线程的调度,简化了并发编程的复杂性。
2026-04-04 05:50:09
300
原创 MySQL配置my.ini文件
my.ini文件中存储了数据库的文件地址,数据库数据存储地址以及登录密码等基础信息。sc delete mysql(注意,这里的mysql是你的数据库服务名称,不知道怎么看的win+R后输入services.msc回车,就能在名称那一列找到你的mysql名称)显示成功后在管理(win+R回车后输入services.msc,回车)里看一下,如果数据库在管理中仍然存在,右键选择停止。数据库在管理中消失。我的mysql目录下不允许生成新文件,所以我在别的地方新建my.ini,编辑好后直接复制到存放的目录下。
2026-04-04 02:50:36
288
原创 SpringBean的生命周期
元信息的配置和解析是一块很大的内容,后续还会专门开一篇章节分析其中的逻辑,本节只是基本介绍一下有那些类型和方案。Spring Bean的生命周期分为四个阶段和多个扩展点。扩展点又可以分为影响多个Bean和影响单个Bean。整理如下:四个阶段实例化 Instantiation属性赋值 Populate初始化 Initialization销毁 Destruction多个扩展点影响多个Bean影响单个BeanAware生命周期。
2026-04-02 07:08:23
338
原创 No qualifying bean of type ‘org.springframework.jdbc.core.JdbcTemplate‘ available expected at least
但是呢,还有一个方法也是可以注册bean的,那就是Spring的注解@Autowire以及java的@Resouce注解,这个时候会导致重复注册bean了,1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 这个的意思就是bean的类型重复,除非你定义别的类型名称,
2026-04-02 03:51:49
319
原创 linux上redis升级
redis-cli -h 192.168.111.100 -p 6379 -a 123123 -n 数据库序号(0-15)#如果是4.* 的就要升级,因为redis6.2 以上需要gcc 9.*的版本,不然make 编译redis时会报错。这里你可以先下载到本地,在通过ftp 的方式上传到服务器,也可以直接 wget 下载。在启动新版的redis 时,可以将数据文件放到启动目录下。-n:指定数据库序号,默认是序号0,redis有16个库(0-15)-a:指定密码,未设置数据库密码可以省略-a选项。
2026-04-02 00:34:29
296
原创 eclipse配置Spring
下载支持windows的文件,若想下载其他类型,可以访问。2、添加commons-logging进入该项目路径。eclipse版本:2020-06 (4.16.0),等待一会儿会出现安装列表,我们选择带有。此时,Spring的配置已经完成了。注:jdk版本:JavaSE-1.8。选择对应的版本进入下载,此处选择。3、添加Spring组件进入路径。选择第一个下载包,等待下载。项目,右键选择项目,点击。③进入文件夹,选择下载好的。,解压进入文件目录,选择。3、Beans.xml代码。依然按照上述顺序,点击。
2026-04-01 22:48:42
161
原创 详解tomcat中的jmx监控
【JMX】JAVA监控的基石-CSDN博客本文我们将从使用和源码实现两个方面聊一下jmx的落地实现范例——tomcat中的jmx。tomcat作为一个web server,其选用jmx来实现监控功能。之所以选择jmx是因为jmx是java se原生的能力,不需要第三方依赖,在web server这种基础组件中,选用原生的技术可以避免很多三方依赖带来的不便。
2026-04-01 20:40:38
285
原创 开源模型应用落地-FastAPI-助力模型交互-进阶篇-中间件(四)
FastAPI 的高级用法可以为开发人员带来许多好处。它能帮助实现更复杂的路由逻辑和参数处理,使应用程序能够处理各种不同的请求场景,提高应用程序的灵活性和可扩展性。在数据验证和转换方面,高级用法提供了更精细和准确的控制,确保输入数据的质量和安全性。它还能更高效地处理异步操作,提升应用程序的性能和响应速度,特别是在处理大量并发请求时优势明显。此外,高级用法还有助于更好地整合数据库操作、实现数据的持久化和查询优化,以及实现更严格的认证和授权机制,保护应用程序的敏感数据和功能。总之,掌握 FastAPI 的高级用
2026-04-01 19:21:35
336
原创 使用rustDesk搭建私有远程桌面
RustDesk – 开源远程桌面访问软件客户端:https://github.com/rustdesk/rustdesk/releases/tag/1.2.7服务端:https://github.com/rustdesk/rustdesk-server/releases/tag/1.1.11-1ubuntu20.04使用上面的地址,下载服务端安装包解压后会出现一个amd64的文件夹,进入后里面包含3个文件:(这里可以直接启动,也可用通过nodejs 的PM2命令启动),推荐使用nodejs 的PM2
2026-04-01 05:18:11
199
原创 Spring+Quartz实现定时任务的配置方法
如果是通过MethodInvokingJobDetailFactoryBean在运行中动态生成的Job,配置的xml文件有个concurrent属性,这个属性的功能是配置此job是否可以并行运行,如果为false则表示不可以并行运行,否则可以并行。如果为false,那么,在这种情况下,当前job还在运行,那么下一个job只能延时运行。任务有并行和串行之分,并行是指:一个定时任务,当执行时间到了的时候,立刻执行此任务,不管当前这个任务是否在执行中;如果不配置,默认是true的,就是允许并行。
2026-03-31 05:31:04
15
原创 nginx中的proxy_set_header参数详解
proxy_set_header 是 Nginx 配置中用于设置代理请求 HTTP 头部的指令。当 Nginx 作为反向代理时,它允许自定义从客户端接收到的请求或添加新的请求头,然后将其转发到后端服务器。这对于维护 HTTP 协议的连贯性、安全性和功能性至关重要。X-My-Header 是一个自定义的请求头字段,用于存储自定义信息。上游服务器可以通过读取 X-My-Header 字段获取自定义信息。
2026-03-31 02:18:00
181
原创 Redis和Redis-Desktop-Manager的下载、安装与使用
3、配置环境变量:高级系统设置 => 环境变量 => 系统变量 => path。6、Redis-Desktop-Manager连接Redis(在连接时需要先。2、将下载好的压缩包解压即可【Redis-x64-3.2.100.zip】(3)点击Browse更换安装位置,点击Install。5、安装Redis-Desktop-Manager。4、在命令行输入:redis-server 命令。(2)点击【I Agree】(1)点击Next下一步。(5)点击Finish。
2026-03-30 06:54:37
10
原创 MySQL--》理解锁机制中的并发控制与优化策略
锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中除了传统的计算机资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源,如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素,从这个角度来说锁对数据库而已尤为重要也更加复杂。按照锁的粒度细分,对于MySQL中的锁主要分为以下三类:1)全局锁:锁定数据库中的所有表2)表级锁:每次操作锁住整张表3)行级锁:每次操作锁住对应的行数据。
2026-03-30 03:21:58
325
原创 【AimRT】现代机器人通信中间件 AimRT
AimRT是智元机器人公司自主研发的一款机器人通信中间件。AimRT 是一个面向现代机器人领域的运行时开发框架。它基于 C++20 开发,轻量且易于部署,在资源管控、异步编程、部署配置等方面具有更现代的设计。旨在为开发者提供一个轻量化的 ROS2 替代中间件;AimRT 致力于整合机器人端侧、边缘端、云端等各种部署场景的研发。它服务于现代基于人工智能和云的机器人应用,提供完善的调试和性能分析工具链,以及良好的可观测性支持。AimRT 还提供了全面的插件开发接口,具有高度可扩展性。
2026-03-28 12:06:40
177
原创 Spring 过滤器:OncePerRequestFilter 应用详解
OncePerRequestFilter是Spring提供的一个过滤器基类,它确保了在一次完整的HTTP请求中,无论请求经过多少次内部转发,过滤器的逻辑都只会被执行一次。这对于需要在请求处理之前或之后进行一次性设置或清理资源的场景特别有用。OncePerRequestFilter是Spring框架中一个非常有用的工具,它可以帮助你在一次完整的HTTP请求中仅执行一次过滤器的逻辑。
2026-03-28 01:01:44
197
原创 Go-Gin Web 框架完整教程
Go 语言(或称 Golang)是一个开源的编程语言,由 Google 开发。在开始使用 Gin 框架之前,我们需要先安装 Go 环境。无法连接到 Go 的默认代理服务器。Go 项目的工作效率很大程度上依赖于正确的环境变量配置。Go 模块是 Go 管理依赖的方式。首先,我们需要创建一个新的项目目录。一个好的项目结构能够提高代码的可维护性和可读性。Gin 是一个用 Go 语言编写的 Web 框架。这里 my-gin-app 是项目名称,你可以根据自己的需求修改。如果显示 Go 版本号,说明安装成功。
2026-03-27 08:51:59
326
原创 NapCatQQ+Springboot基于onebot协议实现qq机器人
由此可以看出 NapCat 是类似于中间件的东西,也可称之为框架,这里我们就称之为qq机器人框架,本文章中介绍的都是集成版,无需手动安装QQ。
2026-03-26 04:09:46
392
原创 Java 进阶:如何让线程主动让出 CPU
suspend 挂起线程,并不会释放锁,又不像 sleep 那样一段时间后自动恢复,所以容易引起死锁。wait 会把当前持有的锁释放掉同时阻塞住,让出 CPU。当其他线程调用 Object.notify/notifyAll 时,会被唤醒,可能得到 CPU,并且获得锁。yield 也可以让线程主动让出 CPU,然后和其他线程一起竞争 CPU,但是调度器也可以忽略 yield。,直接停止线程,同时会释放所有锁,太过暴力,容易导致数据不一致。sleep 方法可以让线程主动让出 CPU,但是并不会释放锁。
2026-03-26 01:04:54
34
原创 Spring Boot 中 RabbitMQ 的使用
在中,我们学习了 RabbitMQ 的,接下来,在本篇文章中,我们就来在中实现常见的工作模式(由于 RPC 模式 和 发布确认模式 使用较少,因此在这里就不进行介绍了),进而学习在 Spring Boot 中如何使用 RabbitMQ在编写代码之前,我们需要先创建项目,引入依赖,并配置基本信息。
2026-03-25 16:26:36
345
原创 PostgreSQL 查看数据库及表中数据占用空间大小
指定OID或名的表或索引,通过指定fork(‘main’,‘fsm’ 或’vm’)所使用的磁盘空间。指定表OID或表名的表使用的磁盘空间,除去索引(但是包含TOAST,自由空间映射和可视映射)指定表OID或表名使用的总磁盘空间,包括所有索引和TOAST数据。, ‘main’)的缩写。关联指定表OID或表名的表索引的使用总磁盘空间。存储一个指定的数值需要的字节数(可能压缩过)指定OID的数据库使用的磁盘空间。指定OID的表空间使用的磁盘空间。指定名称的数据库使用的磁盘空间。指定名称的表空间使用的磁盘空间。
2026-03-25 15:12:31
204
原创 【mybatis】基本操作:详解Spring通过注解和XML的方式来操作mybatis
在 MyBatis 中,通过 XML 文件定义数据库字段和 Java 属性的映射是实现数据持久化的重要步骤。这个映射过程允许你将 SQL 结果集中的列与 Java 对象的属性相对应,确保数据在两者之间正确转换。在 Mapper XML 文件中,使用resultMap元素来定义 SQL 查询结果与 Java 对象字段之间的映射关系。下面是一个示例的-- 定义结果映射 -->-- 使用结果映射进行查询 --></select>-- 插入用户 --></insert></mapper>
2026-03-24 14:21:33
153
原创 SpringMVC的工作流程
在上述过程中,DispatcherServlet、HandlerMapping、HandlerAdapter和ViewResolver对象的工作是在框架内部执行的,开发人员只需要配置DispatcherServlet,完成Controller中的业务处理并在View中展示相应信息。DispatcherServlet是前端控制器,是整个流程控制的中心。(5) HandlerAdapter会调用并执行Handler(处理器),这里的处理器指的就是程序中编写的Controller类,也被称之为后端控制器。
2026-03-24 03:37:42
302
原创 PostgreSQL 向量扩展插件pgvector安装和使用
pgvector 是一个 PostgreSQL 扩展,能够让PostgreSQL 提供向量(vector)数据类型和相关操作功能。参考:https://github.com/pgvector/pgvector利用pgvector 前提是事先安装好postgresql,安装postgresql例可参考下文。参考:Linux(Ubuntu)源码安装postgresql16.3https://editor.csdn.net/md/articleId=142500497安装命令如下:参考:https://
2026-03-23 10:17:30
398
原创 macOS安装Redis
本指南告诉你如何使用Homebrew在macOS上安装Redis。Homebrew 是在 macOS 上安装 Redis 的最简单方法。首先,确保你已经安装了Homebrew。在终端上,运行如果你这个命令失败了,你就需要安装Homebrew。
2026-03-23 02:26:10
34
原创 【MySQL】MySQL升级
例:/usr/local/mysql80/bin/mysqld --defaults-file=/data/3306/my.cnf --user=mysql &MySQL的版本更新很快,新版本中往往包含了很多新功能,并且解决了很多旧版本中的BUG,因此在很多情况下用户需要对数据库进行升级。,如果升级到一个比较新的版本,可能会在不知不觉中在你的环境中引入bug或引起性能问题,如果版本过旧,又会有一些旧版本中的BUG。mysql-shell工具,8.0以后,可以调用这个命令,升级之前的预检查。
2026-03-22 04:59:59
192
原创 Spring Data JDBC 详解
spring-data-jdbc的方便好用、可扩展性进一步显现出来了,如果想分页查询的话,Spring-data-jdbc提供了另外一个接口PagingAndSortingRepository,也可以使用@Query()注解支持原生的sql写入,参数使用过@Param()注入,接收的时候按照顺序接收,但要用 :id来标记接收对应的参数。简单总结就是: 没有拦截在和缓存,每次执行完的SQL得到的就是一个指定想要的完整实体,没有关联的查询或更新操作,没有session, 更简单、高效。
2026-03-22 01:50:13
191
原创 PHP代码调试(vscode+xdebug+phpstudy)
第一步是配置php的环境变量,csdn里有很多文章可以直接搜索即可了解怎么配置,大概就是将phpstudy里的php文件位置复制到环境变量里,最后使用cmd检查是否配置成功。将php的路径放到此处,该路径就在小皮的Extensions里面。在vscode左侧的拓展处搜索可下载这个php debug。创建这个文件,注意端口号要与小皮里的一致。使用记事本打开配置文件里的php.ini。再点开phpdebug里的json。再点击它设置里的扩展组件。点开文件,首选项里的设置。点开vscode里的调试。
2026-03-21 06:15:26
204
原创 PhpStorm下载、安装、配置教程
前面的文章中,都是把.php文件放在WampServer的www目录下,通过浏览器访问运行。这篇文章就简单介绍一下PhpStorm这个php集成开发工具的使用。
2026-03-21 06:14:43
163
原创 【Mysql】:如何恢复误删的数据?
在MySQL中恢复误删除的数据是一个常见但复杂的问题。具体的方法取决于几个因素,包括您是否有备份、使用的是哪种存储引擎(如InnoDB或MyISAM)、以及您的数据库配置等。
2026-03-20 02:42:29
198
原创 SQL Server 数据库管理工具的安装以及使用
在登陆界面我,我们看到,会要求我们选择服务器类型(选择数据库引擎),服务器名称(选择你电脑的名称,或者输入localhost),身份验证方式(可选择Windows身份验证(本地登录)或者SQL Server 身份验证(远程登陆)),登录名(选择Windows身份验证时不需要输入,SQL Server 身份验证时需要输入,一般初次登录用sa账户),密码(你自己创建的用户密码,一般初次登录用sa账户和密码) ,登录成功后可看到进入如下界面。
2026-03-20 00:20:54
332
原创 SpringBoot 与 SpringCloud的版本对应详细版
spring cloud各个版本之间是有所区别的,比如在SpringCloud中,1.X和2.X版本在pom.xml中引入的jar包名字都不一样,比如有的叫spirng-cloud-starter-hystrix 有的叫spring-cloud-netflix-hystrix,维护起来会比较困难。spring-cloud-starter-netflix-xx 替换了原有的 spring-cloud-starter-xx(此处如有不正确请指出)关于spring cloud1.x版本和2.x版本区别。
2026-03-19 02:41:41
215
原创 Redis为什么这么快?Redis的线程模型与Redis多线程
多路I/O复用模型是利用 select、poll、epoll 可以同时监察多个流的 I/O 事件的能力,在空闲的时候,会把当前线程阻塞掉,当有一个或多个流有 I/O 事件时,就从阻塞态中唤醒,然后程序就会轮询一遍所有的流(epoll 是只轮询那些真正发出了事件的流),并且依次顺序的处理就绪的流,这种做法就避免了大量的无用操作。在redis的多线程模式下,获取、解析命令,以及输出结果着两个过程,可以配置成多线程执行的,因为它毕竟是我们定位到的主要耗时点,但是命令的执行,也就是内存操作,依然是单线程运行的。
2026-03-19 00:17:20
151
原创 PostgreSQL 17 发布了!非常稳定的版本
这些新特性和改进不仅提升了数据库的性能和功能,也增强了数据库的可用性和灵活性,使得 PostgreSQL 17 成为一个值得期待的版本。
2026-03-18 12:57:57
236
原创 Nginx 反向代理之upstream模块以及完整配置反向代理示例
也就是说在一个时刻内,Nginx到上游服务器的空闲的长连接是16个,所谓空闲的长连接就是这个长连接TCP连接接建立着,但是上面没有请求去发送,但这就是空闲的长连接。所以说我们的keepalive后面跟一个connection的这样一个参数,就定义了Nginx和后端的上游服务器可以开启的长连接的一个空闲长连接的最大数量。启用长连接的情形下的话,有很多的并发请求都调度给某一台上游服务器,上游服务器处理完之后,结果都返回给Nginx了。请求到达上游服务器的url: /bbs/abc/test.html。
2026-03-18 11:43:59
469
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅