- 博客(397)
- 收藏
- 关注
原创 被问“为什么你们项目不用 JPA 用 MyBatis?”我这样回答拿下了 offer!
哦对了,面试官最爱问的还有一句:“你用 MyBatis 遇到过哪些坑?别慌,以下是我常总结的几个“面试高频坑”:1.返回值是 List,resultType 写错成对象类型正确写法:resultType="com.xxx.User" 用在返回单个对象上;返回列表时,要么配好 resultMap,要么用 resultType="User" 并确保 SQL 返回的是多行。2.字段映射不一致,导致结果为空。
2025-06-12 09:55:56
452
原创 B站首页的 Banner 这么好看,我让你直接用到你的项目!
我最开始是用 Angular 去实现了B站的 Banner ,那时候还没有人做这东西,可以看到下面那一长串 Bannet 图片的第一个图是好几年以前的了。然后随着逐步完善,在这几年偶尔也看到有人发过这东西的实现方法。但我为什么要写这篇文章?「因为我打算用原生 JS 和三大框架都去实现一遍,以满足所有人的需求,让你能直接复制到你的项目」。而且我作为几乎每一期都 copy 的玩家,存货多,也知道最简单通用的 copy 方法。
2025-06-12 09:43:26
360
原创 从单点 Redis 到 1 主 2 从 3 哨兵的架构演进之路
4.1 哨兵集群拓扑图4.2 哨兵服务是怎么启动的4.3 哨兵配置4.4 启动哨兵容器五、客户端自动感知故障如何实现自动感知故障客户端自动感知的原理六、遇到的问题6.1 提示不能写只读的 redis 节点6.2 提示连接 Redis 失败七、总结一、前言我们有个项目中用的 MySQL、Redis、ES、微服务都是单节点部署的,没有做集群模式部署,为了提高整体的可用性,对项目的部署架构进行了升级,支持高可用。二、部署拓扑图。
2025-06-11 17:59:14
374
原创 Ubuntu环境kubernetes集群将容器运行时由docker迁移至containerd
1、驱逐master节点上的pod,将master节点状态调为“Ready,SchedulingDisabled”,被驱逐的pod将会在其他节点重新创建。1、驱逐master节点上的pod,将master节点状态调为“Ready,SchedulingDisabled”,被驱逐的pod将会在其他节点重新创建。可以看到master节点的容器运行时现在为containerd://1.7.27,迁移成功。5、修改containerd配置文件/etc/containerd/config.toml。
2025-06-11 17:59:08
441
原创 ZAB 与 Paxos:分布式一致性算法的工程实践与深度对比
构建可靠的分布式系统时,一致性问题是核心挑战之一。ZooKeeper 的 ZAB 协议和 Paxos 算法作为两种主流解决方案,在理论基础和工程实现上各有特点。本文深入分析它们的实现机制、性能特性和最佳实践。ZAB (ZooKeeper Atomic Broadcast) 是专为 ZooKeeper 设计的分布式一致性协议,核心目标是保证分布式系统中数据更新的原子性和顺序一致性。Paxos 是 Leslie Lamport 提出的通用分布式一致性算法,是众多分布式系统的理论基础,解决的是在不可靠网络中如何达
2025-06-11 14:16:17
483
原创 Java社招面试题:JDK动态代理和CGLIB动态代理的区别?我在面试时被问懵了!
最后,我用三句话总结本文精华:JDK 动态代理需要接口,反射实现,适用于接口驱动的设计CGLIB 动态代理基于继承,性能更优,但不支持 finalSpring AOP 两者兼容,根据是否实现接口自动选择。
2025-06-11 09:41:05
386
原创 登陆人信息获取
在我们后台管理项目之中,获取当前登录人信息至关重要,正常我们都会通过在项目之中通过获取当前登录人的ID,偏于对其后续进行对应的操作,比如登录人的头像姓名等的显示,接下来我们就在我们顶部结构部分之中获取登录人的头像等信息。
2025-06-11 09:21:18
304
原创 鸿蒙开发:hvigorw,编译构建,实现命令打包
本文基于DevEco Studio 5.0.5 Release上篇文章,我们简单的了解了hvigorw,知道了hvigorw是鸿蒙开发中一个不可缺少的构建利器,除了正常的帮我们执行一些流程化操作之外,hvigorw还担负着一个非常重要的角色,那就是搭建流水线时的编译各个hap、hsp、har以及app的重任,少了它,那么流水线就无法正常运行。什么是流水线?
2025-06-11 08:52:26
513
原创 vue3-封装菜单组件
在项目之中,一般我们的后台管理正常结构部分都是包括菜单部分,左侧菜单是必不可少的,菜单部分一般由以下几个部分组成菜单标题菜单图标菜单子项菜单折叠。
2025-06-10 18:20:20
243
原创 【HarmonyOS5】DevEco Studio 使用指南:代码阅读与编辑功能详解
DevEco Studio 是一款功能强大的开发工具,支持 ArkTS、JavaScript、TypeScript 等多种语言,具备智能代码补全、语法高亮、实时错误检查等特性,极大提升了鸿蒙应用的开发效率。本文将详细介绍 DevEco Studio 的代码阅读与编辑功能,帮助开发者更高效地进行项目开发。DevEco Studio 凭借其丰富的开发辅助功能,为 ArkTS 及多语言开发提供了高效、智能的编程体验。从结构导航到语法检查,从代码补全到 Linter 校验,全面支持开发者提升代码质量与开发效率。
2025-06-10 15:39:31
659
原创 Vue CLI 项目迁移:eslint报错解决
登录后复制},1.2.3.eslint 是 ESLint 的命令行工具,负责执行代码检查。–ext .js,.vue 指定 ESLint 检查的文件类型,这里设置为检查 .js 和 .vue 文件。src 是目标文件夹,表示 ESLint 将检查 src 目录中的所有文件。
2025-06-10 14:14:43
624
原创 大促数据库压力激增,如何一眼定位 SQL 执行来源?
登录后复制})@Override// ...1.2.3.4.5.6.7.8.9.登录后复制})@Overridetry {// 1. 找到 StatementHandler(SQL 执行时,StatementHandler 的实际类型为 RoutingStatementHandler)= null) {// 其中 delegate 是实际类型的 StatementHandler (静态代理模式),获取到实际的 StatementHandler。
2025-06-10 11:36:18
400
原创 一个小的知识点 —— Java中三种初始化数据域的方法
通常情况下,在定义一个类时,我们会像下面一样定义空值常量,然后对其进行初始化并调用。本文就聊一聊盘点一下Java代码开发过程中可能会用到的三种初始化数据域的方法。
2025-06-10 10:43:58
200
原创 Java SE 快学到头了,总结一下 Java多线程部分吧
进程是一个正在运行的程序进程是系统进行资源分配和调用的独立单位每一个进程都有它自己的内存空间和系统资源Thread 类是java.lang包下的一个线程类,用来实现 Java 多线程局限性Java 支持类的单继承,如果某个类已经继承了其他父类,就无法再继承 Thread 类来实现多线程。Callable 接口防止实现的多线程是通过 FutureTask 类来封装和管理返回结果的,该类的直接父接口是 RunnableFuture。
2025-06-10 10:38:45
517
原创 vue3-后台布局
侧边栏 => layout => leftAside => index.vue。☞ src=> pages => admin.vue 存放我们的后台主页部分。搭建完了注册登录以后,接下来我们就可以进入我们的主页面搭建我们的后台布局了。头部 => layout => topNav => index.vue。顶部layout=> topNav => index.vue。搭建好主体框架以后,我们就可以去配置我们的侧边栏和头部了。☞ 配置好我们的路由,就可以访问我们的后台主页了。然后放进去我们的主页。
2025-06-09 11:09:27
329
原创 基于K210开发板WiFi 模块联网测试
WiFi 模块与 K210 通过串口连接的方式通讯。K210 在此过程只起到中间搬运数据的功能,不会处理数据。其实 WiFi 模块如果连接其他串口芯片,也是可以通过 AT 指令操作的。以下连接的 WiFi 信号,下次 WiFi 模块重启后,开机会自动连接这个 WiFi 信号。
2025-06-09 10:06:26
636
原创 RAG 结果太水?用 RRF + Reranker 重排,效果翻倍提升!
大家好呀~我是小米,一个在知识工程和大模型圈里“打怪升级”的技术搬砖人。你是不是也遇到过这些坑?相似度Top5的文档里,真正相关的就一两个;大模型明明可以回答问题,但一旦RAG召回错了方向,结果就是答非所问;想用 rerank 但又不知道从哪下手,或者性能堪忧?于是,我开始研究 LangChain4j 的。!
2025-06-08 20:11:03
718
原创 接雨水问题是什么?怎么解决? 接雨水 | 算法
如何用结构化思维建模物理问题;如何平衡时间与空间的权衡;如何从问题中抽象出核心逻辑。这正是算法的魅力所在——在逻辑与现实之间架起桥梁。
2025-06-08 15:24:56
458
原创 AI Agent驱动下的金融智能化:技术实现与行业影响
登录后复制self.balance = 1.0 # 初始资产self.position = 0 # 是否持仓reward = 0# action: 0 = 持有, 1 = 买入, 2 = 卖出1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.
2025-06-08 14:07:28
529
原创 Chrome Edge Safari 360浏览器 极速浏览器 火狐等浏览器安装扩展的方法步骤
浏览器扩展安装,Chrome 扩展安装,Edge 扩展安装,Safari 扩展安装,360 极速扩展安装,360 安全扩展安装,火狐扩展安装,浏览器插件安装,Chrome 插件安装,Edge 插件安装,Safari 插件安装,360 极速插件安装,360 安全插件安装,火狐插件安装,扩展程序安装。在地址栏中输入 edge://extensions复制链接,打开扩展管理页面,然后再打开左下角的【开发人员模式】和【允许来自其他应用商店的扩展】,然后刷新本页。,点击【添加扩展程序】,安装完成。
2025-06-08 12:08:15
287
原创 通义灵码 2.5 | 一个更懂开发者的 AI 编程助手
像我在文章开篇提到的,遇到了一个陌生项目,工期又紧的情况下,那么如何可以快速上手项目,通义灵码自然是首当其冲。在 IDE 开发工具打开项目之后,我们可以先让智能体为我们介绍一下当前项目,输入我们的需求描述【介绍当前项目】通义灵码会从项目的核心功能、技术栈、核心模块介绍、部署方式、开发环境搭建步骤等多个方面来介绍我们手上的项目,方便我们快速的了解项目的核心功能,主要的模块,技术栈信息,从而为后面的快速投入开发做准备image.pngimage.pngimage.pngimage.png。
2025-06-08 10:38:40
649
原创 Spring Boot 3.5.0 正式发布了
是 Spring 框架提供的异步任务执行器接口,用于执行异步方法或任务。它是 Spring 对 Java 原生Executor的增强,提供了更高层次的封装,常用于异步方法调用(如@Async)或手动提交任务。如果自定义的Executor的 Bean 存在,Spring Boot 3.5 现在可以自动配置 AsyncTaskExecutor,只需要将属性的值设置为 force。在这种模式下运行时,它确保所有集成(包括常规的@Async处理)都使用自动配置的执行器,除非定义了相关的 Bean。
2025-06-08 00:05:34
838
原创 基于继电反馈的智能调节算法详解
作为经典PID控制器还存在PID参数整定的问题。通常我们可以采取人工整定的办法,但人工整定涉及到比较专业的知识,而且找到合适的参数本身也不是一件容易的事,所以人们探索了一系列适用于不同情况的PID参数自动整定算法。在这一篇中我们就来讨论基于继电反馈的PID参数自整定算法。经过前面的分析,我们知道要实现整定过程需要诸多的变量控制和记录整个整定过程。为了便于对这些变量进行管理,我们使用结构体来统一处理这些变量。登录后复制/*定义整定过程变量结构体类型*///整定与PID控制开关,0:PID控制;1:参数整定。
2025-06-07 23:19:22
966
原创 如何彻底解决 Edge 浏览器无法安装扩展程序的问题
Edge浏览器无法安装扩展如果安装失败,并出现以下几种提示:程序包无效:CRX_REQUIRED_PROOF_MISSING该扩展程序未列在 Edge 网上应用店中,并可能是在您不知情的情况下添加的扩展的按钮开关为灰色,无法启用。
2025-06-07 18:27:57
262
原创 Java社招面试题:说一下 Spring 的事务隔离?我这次靠这个问题反客为主!
很少用,测试阶段玩玩就好。:避免脏读,适合大部分高并发系统。:MySQL默认,防止不可重复读,但需要注意幻读(MySQL用MVCC解决了大部分)。:最安全,最慢,用在强一致性场景,如金融核心系统。事务隔离级别这个知识点,看起来简单,实则“杀伤力”巨大,写业务代码的时候可能忽略,面试的时候却能成为你翻盘的关键!希望你看完这篇文章,不只是背下四个隔离级别,而是能真正理解它们在项目中怎么应用、Spring是怎么支持的、底层怎么实现的。“业务无小事,事务需谨慎,隔离不对,数据打回原形。
2025-06-07 15:20:49
817
原创 实战出真知!SpringBoot 接口级防护:限流、重放攻击与签名机制全解析
点击上方“程序员蜗牛g”,选择“设为星标”跟蜗牛哥一起,每天进步一点点。
2025-06-07 11:07:36
301
原创 基于华为开发者空间,体验鲲鹏DevKit之Python字符串拼接系统性能分析
鲲鹏DevKit系统性能分析是针对基于鲲鹏的服务器的性能分析工具,能收集服务器的处理器硬件、操作系统、进程/线程、函数等各层次的性能数据,分析出系统性能指标,定位到系统瓶颈点及热点函数,给出优化建议。该工具可以辅助用户快速定位和处理软件性能问题。本实验选择Python进行字符串拼接性能分析作为示例,并借助开发者空间云主机提供的鲲鹏沙箱资源进行安装、配置,直观地展示Devkit中系统性能分析能力在实际应用开发中为开发者带来的便利。
2025-06-06 17:05:45
859
原创 IT人#摸鱼计划#,6月更文好礼上新啦~
c、个人原创,不可伪原创;e、搬家文章不计入活动统计内。我们为大家整理了容易被百度收录的关键词,当你写作的时候,可以直接选择热点且擅长的关键词进行博文创作。1)每位博主均可以参加以上任务,但不可使用多个账号参与本活动任务,一经发现全部取消活动资质。活动结束后,会根据活动规则对活动文章进行复核,不符合要求的内容、阅读量造假等不予发奖、评奖;在活动有效期内,由博主本人在博主任务处领取,过期失效。1、关于活动,你有任何不清楚的地方,都可以咨询小助手↓。发文时间:2025年6月6日—2025年6月30日。
2025-06-06 15:18:56
178
原创 Windows 下编译 OpenCV 和 OpenCV-contrib
本文介绍了如何在 Windows 系统下编译 OpenCV 和 OpenCV-contrib。希望本文能够帮助大家编译 OpenCV 和 OpenCV-contrib,更好地完成 OpenCV 的学习。
2025-06-06 13:48:05
458
原创 全网最通俗!Spring 事务传播行为用故事讲明白了!
好啦,先正经解释一下:在Spring中,事务传播行为(Propagation)定义了一个有事务的方法调用另一个有事务的方法时,应该如何处理事务上下文。也就是说:假如你现在在方法A里用了@Transactional,然后它调用了方法B,方法B也用了@Transactional,那——请问B要用A的事务吗?还是重新开一个新的?这就是传播行为来决定的。希望大家看完今天的文章,对传播行为不再只是“记得几个名字”,而是:能讲出行为的意图和场景能在项目中做出正确选择。
2025-06-06 10:17:30
696
原创 Spring事务失效的8个经典大坑
这是因为事务通知是基于Spring AOP实现的,而Spring AOP默认只拦截public方法调用。在同一个类中,非事务方法调用事务方法,或者事务方法调用另一个具有不同事务属性的方法,事务会失效。如果配置了错误的事务管理器,或者在多数据源环境中未指定正确的事务管理器,会导致事务失效。开发者在事务方法中捕获了异常但没有重新抛出,导致事务无法回滚。Spring提供了不同的事务传播行为,用于控制事务的边界。在嵌套事务场景中,内部事务的回滚没有按照预期工作。使用了正确的事务注解,但事务不生效或者出现异常。
2025-06-05 22:49:48
1004
原创 鸿蒙开发:应用内如何做更新
本文基于Api13应用更新是开发中一个比较常见的功能,便于我们把新的功能及时的推送出去,进而提醒用户有新的版本,便于用户及时的去体验下载,可以说,关系着我们APP功能的未来走向,是一个不能缺失而且非常重要的功能。鸿蒙开发:应用内如何做更新鸿蒙中的更新和Android有着非常大的区别,在Android中,apk可以自由下载安装,也就意味着,我们可以把apk托管到一个服务器中,在应用中就能让用户做到更新下载,而且非常的及时;
2025-06-05 16:12:31
868
原创 vivo Pulsar万亿级消息处理实践(1)-数据发送原理解析和性能调优
Pulsar是新一代的云原生消息中间件,由Apache软件基金会孵化和开源。它的设计目的是为了满足现代数据处理和计算应用程序对可扩展性、可靠性和高性能的需求,具备存储与计算分离、节点对等、独立扩展、实时均衡、节点故障快速恢复等特性。Pulsar由四个核心模块组成:broker、bookKeeper和client(Producer和Consumer)、zk(元数据管理和节点协调)。broker接受来自Producer的消息,将消息路由到对应的topic;bookKeeper用于数据持久化存储和数据复制;
2025-06-05 15:02:02
594
原创 RabbitMQ 4.1集群部署与访问测试
为了让3个节点处于同一个集群,我们告诉其中2个节点,如rabbit@gw15、rabbit@gw16,加入到第3个节点的集群,如rabbit@gw14。重置节点会移除节点上的所有数据。消费者程序先前经haproxy连到了gw15节点,当gw15节点上的RabbitMQ实例停掉后,消费者程序自动重连到了其它节点。在gw16节点上,操作与上面是一样的,除了这次我们让节点加入rabbit@gw15节点所在的集群。如上验证所示,使用HaProxy+RabbitMQ集群这种架构,可以保证仲裁队列的高可用,验证通过。
2025-06-04 16:59:36
866
原创 【面试必问】Spring支持注入null和空字符串吗?不懂别去面试了!
如果你遇到这个问题,建议你这样答:在 Spring 中,如果使用 @Value 注入属性时,直接配置为 null 是无法得到真正的 null 的,反而会变成字符串 "null"。如果想注入真正的 null,应该使用 SpEL 表达式 @Value("#{null}")。而空字符串是可以通过配置文件正常注入的,比如 key= 或 key="" 都可以。此外,如果使用 @Autowired 注入 Bean,默认是 required 的,容器中找不到 Bean 会报错。
2025-06-04 16:13:32
754
原创 LangChain4J 教我做人:RAG API 增强原来这么香!
在正式进入主线剧情前,简单给没接触过 RAG 的小伙伴复习一下。RAG 的全称是 Retrieval-Augmented Generation,翻译过来就是“检索增强生成”。本质就是——把用户问题丢给大模型之前,先从你的知识库里找到相关资料,再让大模型结合上下文来回答问题。用户提问 → 检索相关文档 → 组合上下文 → 大模型生成回答这种方式好处多多:更准确、更私有、更可控、更高效。LangChain4J 把整个流程组件化,你可以随意组合。
2025-06-03 22:10:53
642
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人