- 博客(70)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 Java知识点汇总
Java核心技术解析摘要 JVM篇: 内存结构:分为线程私有区(程序计数器、虚拟机栈)和共享区(堆、方法区)。堆存储对象实例,方法区存储类信息,运行时常量池存放编译期常量。 垃圾回收:采用可达性分析判断对象存活,分代收集算法(新生代复制算法、老年代标记-整理)。触发条件包括Minor GC(新生代)和Full GC(全局回收),后者可能导致显著性能下降。 类加载:经历加载、验证、准备、解析、初始化阶段,双亲委派模型保障核心类安全。字节码执行通过解释器与JIT编译器混合实现。 Java核心篇: 多线程:线程创
2025-08-20 11:10:23
725
原创 Java 静态工具类的依赖注入方式:详解静态字段初始化
在日常开发中,静态工具类(如ResultUtils这类处理统一返回结果的工具类)常需要依赖其他组件(如日志工具),但在 Spring 框架中,直接给静态字段注入依赖却会遇到问题。本文将详解静态字段无法通过@Autowired注入的原因,以及如何通过静态初始化方法实现依赖注入,并理清类加载与 Spring 启动的执行顺序。
2025-08-19 16:51:31
716
原创 GoLand 项目从 0 到 1:第八天 ——GORM 命名策略陷阱与 Go 项目启动慢问题攻坚
摘要:开发团队在第八天解决了两个关键技术问题。首先发现了GORM框架的蛇形命名策略导致数据库字段映射失败,通过适配SQL别名或关闭自动转换功能解决了接口数据异常。其次排查出某电脑管家后台服务PCManagerService严重影响Go项目启动速度,停止该进程后编译时间从30秒降至1-2秒。这两个问题的解决为后续开发扫清了障碍,团队对GORM的设计哲学和开发环境优化有了更深理解。(150字)
2025-08-14 19:03:53
204
1
原创 GoLand 项目从 0 到 1:第七天 ——Redis 工具类实现分布式锁及分页查询
摘要:本文介绍了基于Redis实现的分布式锁方案,重点解决了多用户协作系统中的并发控制问题。通过封装RedisManager工具类,实现了分布式锁获取(AcquireLock)和释放(ReleaseUserLock)的核心逻辑,采用Lua脚本确保原子性操作。该方案成功应用于"单用户编辑"和"算法调用限流"场景,通过SetNX命令实现原子性抢锁,设置60秒自动过期防止死锁,并严格校验锁持有者避免误释放。工具类同时封装了Redis基础数据结构操作,为系统提供了可靠的并发控
2025-08-14 11:34:14
38
原创 Retryer 重试器:使用场景与实践
摘要:分布式系统中Retryer机制适用于网络请求、资源竞争等场景,通过指数退避等策略实现智能化重试。关键点包括:1)合理设置重试条件(异常类型/结果判断);2)采用指数退避等等待策略避免集中请求;3)限制最大重试次数(3-5次);4)确保操作幂等性;5)添加重试监听器便于监控。使用时需精确控制重试条件,避免盲目重试导致系统压力或数据不一致问题。示例代码展示了如何通过Guava Retrying实现包含退避策略的创建用户重试逻辑。
2025-08-11 16:50:35
248
原创 GoLand 项目从 0 到 1:第六天 —— 权限接口开发与问题攻坚
第六天开发聚焦权限模块优化,突破多项技术难点:1. 实现bcrypt单向加密与Base64可逆加密方案,分别用于敏感密码存储和临时场景;2. 通过动态SQL拼接实现多表联查,支持用户角色关联的复杂条件查询;3. 使用pq.StringArray适配PostgreSQL数组类型,解决权限标识符存储问题;4. 采用字符串化传输方案解决18位ID前端精度丢失问题。当日完成权限接口核心功能,为后续开发奠定安全可靠的基础。
2025-08-08 16:50:02
64
原创 MyBatis-Plus 更新逻辑删除字段(is_delete)无效问题分析与解决方案
摘要:使用MyBatis-Plus时,逻辑删除字段is_delete无法通过updateById()更新,原因在于@TableLogic注解会使其被自动忽略。解决方案包括:1)使用deleteById()进行逻辑删除;2)使用UpdateWrapper.set()强制更新字段。若移除注解后仍无效,需检查全局配置logic-delete-field的值是否符合预期。最佳实践建议区分逻辑删除与手动更新场景,分别采用对应方法确保数据一致性。(149字)
2025-08-07 19:54:29
338
原创 GoLand 项目从 0 到 1:第五天 —— 角色权限中间件实现与事务控制
摘要:第五天开发完成了权限校验核心功能:1. 实现基于Gin的权限中间件,通过接口路径关联权限ID,并验证用户角色权限;2. 开发用户权限管理接口,采用GORM事务确保多表操作原子性;3. 建立完整的权限控制链路:JWT认证→权限中间件校验→业务接口执行。系统实现了接口级别的精细化权限控制,为后续业务模块提供了安全基础。
2025-08-05 19:39:41
123
原创 GoLand 项目从 0 到 1:第四天 —— 技术选型落地与方案设计
本文介绍了用户权限管理系统的设计与实现方案,重点包括:1)采用五表模型(用户、角色、权限及关联表)构建灵活的权限体系;2)实现基于JWT的无状态认证机制,包含令牌生成、解析和刷新功能;3)设计权限校验流程,确保接口级访问控制。系统采用Golang等技术栈,通过角色权限映射实现细粒度访问控制,为文档管理等业务模块提供安全基础。
2025-08-04 14:21:24
39
原创 redis实现分布式锁及场景
摘要:分布式锁在定时任务中的应用可以有效解决多节点部署时的重复执行问题。文章以每天12点推送数据为例,展示了基于Redis的分布式锁实现方案,通过setIfAbsent方法获取锁并设置过期时间。应用场景包括定时任务同步、数据库状态变更控制、分布式事务协调和限流控制等。代码示例详细演示了锁的获取、业务处理(日期范围计算和数据过滤)及最终锁释放的过程,确保关键操作的排他性执行。该方案兼顾了并发控制与异常处理,适用于分布式环境下的任务调度场景。
2025-07-29 15:07:13
194
原创 GoLand 项目从 0 到 1:第三天 —— 图数据库版本管理方案调研与中间件部署
本文聚焦知识图谱系统的关键技术实现,主要包括:1. 提出基于Neo4j的版本管理方案,采用valid_from/valid_to属性实现节点/关系的版本化存储,支持高效查询与回退操作;2. 完成MinIO对象存储系统的全链路集成,包括Docker部署、API配置和文件CRUD接口开发;3. 搭建图数据库与文件存储的基础环境,为后续知识图谱功能开发奠定基础。通过节点版本化属性和变更记录机制,在保证查询效率的同时实现了完整版本链管理。
2025-07-28 16:40:41
680
原创 阿里云Opentelmetry告警操作文档
本文档介绍了监控告警系统的配置流程:1)选择告警对象(如钉钉),通过Webhook配置机器人;2)创建通知策略,设置匹配规则并关联通知对象;3)配置告警规则,包括名称、应用选择、指标类型和条件筛选(支持单接口精确匹配或多接口模糊匹配)。文档还提供了接口地址匹配的实用技巧,如使用前缀匹配多个接口。
2025-07-28 15:24:55
247
原创 GoLand 项目从 0 到 1:第二天 —— 数据库自动化
摘要 项目第二天开发聚焦数据库自动化与多数据库支持,实现了MySQL、MongoDB等数据库的全自动化初始化流程。核心功能包括:数据库自动创建、表结构迁移、种子数据填充的统一管理;新增MongoDB业务链路支持;升级工具链适配新架构。关键技术点:1) 统一数据库初始化入口管理多数据库连接;2) 自动化建表与数据初始化;3) 改进雪花ID生成器支持分布式部署;4) JWT令牌生成/验证功能增强。通过标准化工具链实现了多数据库(Mysql/MongoDB/Neo4j)的便捷操作,显著减少重复建表工作量。
2025-07-24 16:43:42
363
原创 GoLand 项目从 0 到 1:第一天 —— 搭建项目基础架构与核心雏形
本文记录了《GoLand项目从0到1》专栏第一天的开发工作。作为Java开发者首次接触Go语言,在领导的指导下完成了项目基础搭建:确定采用Gin框架,基于领域驱动设计思想搭建分层架构,创建了包含业务模块、中间件、数据库管理等清晰目录结构。通过开发一个demo示例,验证了路由配置、中间件绑定和数据库交互等核心功能。文章详细介绍了从技术选型到代码实现的完整流程,并分享了Go语言的学习资源。后续将继续完善各模块功能开发。
2025-07-23 11:21:30
847
1
原创 linux服务器git checkout aliyun的代码,每次都要输入用户名密码
linux服务器git checkout aliyun的代码,每次都要输入用户名密码
2025-04-17 15:11:13
268
原创 基于ngnix配置本地代理到对应服务器
在服务器上装好nginx,在nginx配置文件nginx.conf中配置本地想要链接对应的服务器端口信息。遇到的问题:我本地代码需要通过http协议调用一个服务器端口,但是无法调通。加好这个代理后本地代码就可以访问了。
2025-03-25 09:53:00
259
原创 启动idea无法定位程序输入点CreateAppContainerProfile于动态链接库USERENV.dll上
启动idea无法定位程序输入点CreateAppContainerProfile于动态链接库USERENV.dll上
2024-09-04 14:35:20
3085
3
git clone 后报错Unsupported SSL backend
2021-04-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人