后端

Async的线程池使用的哪个?

前言 在Spring中我们经常会用到异步操作,注解中使用 @EnableAsync 和 @Async 就可以使用它了。但是最近发现在异步中线程号使用的是我们项目中自定义的线程池 ThreadPoolTaskExecutor 而不是之前熟悉的 SimpleAsyncTaskExecutor 那么来看一下他的执行过程吧。 正文 首先要使异步生效,我们得在启动类中加入 @EnableAsync 那么就

Spring AI开发MCP Server和MCP Client

本文介绍基于Spring AI如何实现MCP开发和调用。首先自定义了两个MCP Server,其中:一个是算术计算器MCP Server,并通过sdtio传输协议发布,另一个是天气预报MCP Server,通过sse传输协议发布。然后实现一个MCP Client,并调用阿里云qwen大模型完成整个 MCP 调用流程

《MySQL 事务深度解析:从 ACID 到实战,守住数据一致性的最后防线》

前引:数据是业务的核心,而事务是数据可靠性的 “守护神”。在 MySQL 中,事务看似简单的 “提交 / 回滚” 操作,背后藏着 ACID 特性的严格约束、隔离级别的底层实现,以及并发场景下的锁竞争逻辑。很多开发者因为一知半解,导致系统出现脏读、幻读、数据丢失等严重问题。今天,我们就来层层拆解

LOCK指令前缀

在Intel® 64 and IA-32 Architectures Software Developer's Manual中的章节LOCK-Assert LOCK$ Signal Prefix中给出LOCK指令的详细解释 LOCK是一个指令前缀,也就是说LOCK会使紧跟在其后面的指令变成原子指令(atomic instruction)。 LOCK指令前缀只能加在以下这些指令前面

图解LeetCode——11. 盛最多水的容器(难度:中等)

一、题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水,返回容器可以储存的最大水量。 说明:你不能倾斜容器。 二、示例 2.1> 示例 1: 【输入】[1,8,6,2,5,4,8,3,7] 【输出】49 【解释

Leetcode 15. 三数之和

题目要求 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j、i != k 且 j != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 1: 输入:nums = [-1,0,1,2,-1,-4] 输

Jenkins结合gitee自动化部署SpringBoot项目

安装 安装教程 插件选择 Gitee Plugin 配置 源码管理 填写源码地址 注意:请确保genkins所在的服务器有权限git拉取远程仓库代码,如果不可以请参考ssh配置 centos 配置ssh拉取远程git代码 源码管理 构建触发器 1.勾选Gitee webhook 触发构建 2.生成webhook密码 构建触发器 3.在gitee项目管理中配置w

整理一些可用来分析JVM性能的工具

jmap 一种用于生成堆转储的命令行工具,可以用于分析JVM的内存使用情况 jstack 一种用于生成线程转储的命令行工具,可以用于分析线程的状态 jstat 一种用于监控JVM统计信息的命令行工具,可提供实时的性能数据 MAT 一种用于分析堆转储文件的工具,可以帮助识别内存泄漏和优化内存使用 jconsole 可以监控

基于SpringBoot和Leaflet的区域冲突可视化-以伊以冲突为例

目录前言一、相关空间要素1、区域冲突目标查询2、域外第三国势力查询二、前后端应用实现1、后台查询实现2、前端Leaflet可视化三、成果分析1、冲突双方2、域外势力四、总结前言        在当今全球化时代,地区局势成为国际社会关注的焦点。其中,以色列与伊朗之间的冲突持续多年,局势复杂且影响深远。这种冲突不仅关乎两国人民的安危,还对地区稳定