
实战手册
文章平均质量分 93
在软件开发中,影响进度的常是被忽视的细节问题。这些问题虽小,却可能成为项目推进的“拦路虎”,排查和解决它们常耗时费力,且缺乏清晰思路。这些问题像暗处的“小怪兽”,可能是配置错误、工具异常或机制问题,让人无从下手。本专栏系统整理了这些疑难杂症,提供高效解决方案,帮助开发者快速应对,节省时间和精力。
行者无疆1982
热爱技术,专注于架构、设计、开发,侧重于综合运用与实战,所有内容均动手验证确认,不以讹传讹,欢迎评论、转发和私信。
每周更新一篇高质量原创文章,你的支持是创作的动力,记得添加关注~。
一起努力,遇见更好的自己。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
架构图绘制工具PlantUML简介及语法
本文介绍了两种架构图绘制方法:绘图软件(如draw.io)灵活但耗时,基于文本的工具(如PlantUML)高效易管理但样式受限。重点讲解了PlantUML的基本用法,包括文件格式、注释、宏替换、include引入资源、C4模型元素(Person、System等)、关系定义和布局控制。提供了一个最小完整示例,展示如何用简洁代码生成包含买家、电商系统和支付宝的上下文图,并自动生成图例。文章还提供了PlantUML官网链接和中文手册,便于读者进一步学习。原创 2025-08-18 08:10:55 · 638 阅读 · 0 评论 -
Spring Boot实战系列1—— 日志输出
Spring Boot日志实战指南 本文介绍了Spring Boot应用中日志的重要作用与配置方法。日志在开发调试阶段帮助定位问题,在生产环境监控系统运行状态,是排查问题的关键依据。 核心要点: 主流日志组件对比:SLF4J作为日志门面,配合Logback(默认)或Log4j2实现 日志对象实例化:推荐使用@Slf4j注解简化Logger创建 日志输出方法:info/dubug/error等不同级别日志的使用方式 日志配置详解:通过logback.xml控制日志格式、输出目的地(控制台/文件)和级别 文中提原创 2025-08-04 08:00:00 · 657 阅读 · 0 评论 -
Java 开发中主流模板引擎简介及对比
摘要: Java模板引擎是实现动态内容生成的重要工具,通过分离数据与模板来提高开发效率。本文介绍了模板引擎的基本概念、组成和工作流程,重点分析了其在网页生成、邮件发送、文件配置、代码生成和报表制作等场景的应用价值。对比了Thymeleaf、FreeMarker、Velocity等主流模板引擎的特点与适用场景,并提出了选择建议、性能优化和安全防护等注意事项。最后通过FreeMarker代码示例展示了模板引擎的实际应用方式,为开发者提供了技术选型和实践指导。原创 2025-07-28 08:02:27 · 599 阅读 · 0 评论 -
使用Jenkins实现Windows服务器下C#应用程序发布遇到的共享冲突问题解决方案
摘要 本文记录了Windows服务器下C#应用程序发布过程中遇到的文件占用问题及解决方案。通过Jenkins发布时发现文件传输成功但覆盖失败,排查发现xcopy因文件占用导致共享冲突。尝试使用robocopy命令和不同IIS服务停止方式(iisadmin、w3svc)后,最终确定"net stop w3svc"能有效释放文件占用。文章对比了iisadmin和w3svc服务的区别,并验证了解决方案的有效性,体现了实践过程中从理论到实际的技术探索过程。原创 2025-07-21 08:00:00 · 987 阅读 · 0 评论 -
Spring Retry:优雅处理失败重试的利器
Spring Retry是Spring框架提供的声明式重试机制,用于处理暂时性故障(如网络抖动、数据库连接中断等)。通过@Retryable注解可轻松为方法添加重试功能,支持自定义重试次数、退避策略等。使用时需确保操作幂等性,合理设置重试参数,并注意内部方法调用需单独标注。典型应用场景包括远程服务调用、数据库操作等可能出现短暂失败的场景。与熔断器不同,Spring Retry专注于失败重试而非服务熔断。原创 2025-07-14 08:00:00 · 806 阅读 · 0 评论 -
JWT:原理、机制与实践
JWT(JSON Web Token)是一种无状态、自包含的用户认证解决方案,由头部、负载和签名三部分组成,具有跨域支持和高安全性的特点。其工作流程包括令牌生成、传输和验证三个环节。使用时需注意安全性问题,如采用强加密算法、防范XSS攻击、设置令牌过期机制等。文章还探讨了JWT在单点登录场景的风险、令牌撤销机制以及常见问题处理。JWT尤其适合分布式系统,能有效减轻服务器存储压力,提高系统扩展性。原创 2025-07-07 08:00:00 · 597 阅读 · 0 评论 -
Java拷贝专题—— 浅度拷贝与深度拷贝,常用工具类对比及推荐
本文探讨了Java开发中的对象拷贝操作,区分了浅拷贝和深度拷贝的概念与实现方式。浅拷贝仅复制对象字段的引用,而深度拷贝递归复制整个对象图。文章对比了常用深度拷贝工具类(Apache Commons BeanUtils、Dozer和Orika),重点介绍了Orika框架的高性能特性及其在Spring Boot环境下的集成方法。Orika通过代码生成技术实现高效对象映射,简化了复杂对象转换过程。在Spring Boot项目中,只需添加依赖并配置Mapper即可使用Orika进行对象拷贝,为开发提供了便捷高效的解原创 2025-06-30 08:00:00 · 960 阅读 · 0 评论 -
数据库与缓存最终一致性方案——延迟双删技术
本文探讨了缓存与数据库数据一致性问题,重点介绍了延迟双删技术方案。文章首先分析了常用缓存策略(Cache-Aside、Read-Through等)的优缺点,指出数据不一致的风险。延迟双删策略通过在数据库更新前后两次删除缓存(间隔500毫秒左右),有效降低了数据不一致概率。该方案实现简单,适用于最终一致性要求的场景,但也存在延时时间难以确定、无法完全避免并发问题等局限性。相比其他方案(消息队列、Canal监控等),延迟双删在简单性与效果间取得了较好平衡。作者强调,强一致性必须采用锁机制,而延迟双删是业务可接受原创 2025-06-23 08:00:00 · 1446 阅读 · 0 评论 -
深入浅出:Oracle 数据库 SQL 执行计划查看详解(3)——表的连接方式及返回各列含义
本文摘要: Oracle数据库提供了多种表连接方式,包括嵌套循环连接(适合小表连接或索引访问)、哈希连接(适合大表无索引场景)和合并连接(适合已排序表的等值连接)。执行计划分析可通过Operation列查看操作步骤,Name列识别对象名称,Rows/Bytes列评估数据量,Cost/Time列衡量性能成本。优化技巧包括收集统计信息、创建适当索引和分析查询结构,以提升数据库查询效率。原创 2025-06-16 08:00:00 · 668 阅读 · 0 评论 -
深入浅出:Oracle 数据库 SQL 执行计划查看详解(2)——执行计划的关键元素
执行计划的关键元素包括:1) 全表扫描(TABLE ACCESS FULL),适用于无索引或数据量小的情况;2) 索引扫描(INDEX SCAN),分为唯一扫描(INDEX UNIQUE SCAN)和范围扫描(INDEX RANGE SCAN),通过索引快速定位数据;3) 通过ROWID的表存取(TABLE ACCESS BY USER ROWID),利用Oracle内置的行标识符高效访问单行数据。通过分析执行计划可以优化SQL性能,合理使用索引能显著提升查询效率。原创 2025-06-09 08:01:40 · 989 阅读 · 0 评论 -
深入浅出:Oracle 数据库 SQL 执行计划查看详解(1)——基础概念与查看方式
本文介绍了Oracle数据库SQL性能优化的关键手段——执行计划分析。首先说明了执行计划的概念,即数据库执行SQL语句的详细步骤和策略。接着详细讲解了三种查看执行计划的方法:通过V$SQL_PLAN视图查询(操作繁琐)、使用EXPLAIN PLAN语句(分两步操作)以及自动执行计划追踪(最便捷直观,推荐使用)。其中重点描述了SQL Developer工具中图形化执行计划的查看方式,为数据库优化提供了实用指导。原创 2025-06-03 10:05:53 · 1007 阅读 · 0 评论 -
前端组件间接依赖版本升级后导致版本不兼容引发的血案——ERR_PACKAGE_PATH_NOT_EXPORTED No “exports” main defined in
先前分享了一篇因为前端组件版本使用^指定引发的不兼容问题博客,本以为问题已彻底解决,结果遇到了新的挑战。有小伙伴反馈一二三应用开发平台搭建开发环境的时候,按照操作手册,进行了最后一步,启动的时候会报错:我拿本地的开发环境测试正常,然后从Gitee上重新拉取搭建开发环境,复现了问题。原创 2025-03-25 10:41:10 · 2272 阅读 · 9 评论 -
一二三应用开发平台——能力扩展:多数据源支持
随着项目规模的扩大,单一数据源已无法满足复杂业务需求,多数据源应运而生。MyBatis-Plus 的官网提供了两种多数据源扩展插件:开源生态的 dynamic-datasource 和 企业级生态的 mybatis-mate。这里遵循开源免费的原则,选择前者dynamic-datasource,集成到平台中来。首先需要考虑的把依赖加到哪个模块下。数据源属于底层实现,平台的核心模块如system、support、entity-config,以及能力扩展模块,如mail、notification等,还有基于平原创 2025-03-10 10:13:16 · 891 阅读 · 0 评论 -
使用Jenkins实现Windows服务器下C#应用程序发布
在现代化的软件开发流程中,持续集成和持续部署(CI/CD)已经成为不可或缺的一部分。Jenkins作为一款开源的自动化运维工具,能够帮助我们实现这一目标。本文将详细介绍如何在Windows服务器下使用Jenkins来自动化发布C#应用程序。原创 2025-02-24 08:42:58 · 1466 阅读 · 0 评论 -
Vue项目中组件版本号使用^宽泛设置引发的兼容性问题及解决方案
在Vue项目中,package.json中使用^符号指定版本号虽然方便,但也可能引发版本不兼容的问题。通过使用固定版本号、将pnpm-lock.yaml纳入Git管理、使用npm shrinkwrap这几种方式,可以有效管理项目依赖,避免构建失败和运行时错误。希望这些方法能帮助你在项目开发中更加顺利地管理依赖,提高开发效率。原创 2025-02-03 08:00:00 · 1731 阅读 · 0 评论 -
net web项目多环境配置的正确姿势
一套老的系统,基于.net技术栈的web系统,配置文件web.config中配置了包括数据库连接在内的诸多键值对,高达几十项。原先并没有对配置文件进行规范管理,源码中的配置仅对应开发测试环境。开发测试完成后,编译,将需要更新的文件手工复制到生产环境覆盖,如添加了新的配置项,同样需要手工修改生产服务器上的web.config文件。这种方式效率低下且容易出错。为了提高运维效率,使用Jenkins搭建了自动发布,这时候先前手工处理配置文件的模式也形成了制约。分析这是一个典型的多环境下配置文件的管理问题。原创 2025-01-27 10:06:09 · 949 阅读 · 0 评论 -
SpringBoot项目组件版本依赖冲突问题
开发平台在集成minio时,pom引入了sdk。在调用上传文件API时,控制台报错:从错误来看,是okhttp的版本过低,minio要求版本4.11.0及以上.初看这错误一脸懵,okhttp是minio内部依赖的jar包,难不成其他地方也在使用,造成了版本冲突?使用maven helper插件提供的jar包依赖分析,发现并没有出现okhttp冲突的情况。然后整个项目工程中搜索okhttp关键字,任何模块没有显性使用过。查看使用minio组件模块的依赖,确认当前使用的okhttp的版本是3.14.8,明显低原创 2023-12-04 08:00:00 · 2907 阅读 · 0 评论 -
疑难杂症整理汇总1
中文乱码一般是因为字符编码方式与字符解码方式不一致导致的,如果出现乱码,首先我们应该检查项目的编码是否与cmd控制台的编码方式是否一致。如果不一致,修改编码使其一致。window系统命令行cmd控制台默认编码为GBK,而SpringBoot项目设置为utf-8,则直接运行 java -jar platform-core-1.0.0.jar,中文会出现乱码。网上的文章,如下并无法解决java -Dfile.encoding=UTF-8 -jar platform-core-1.0.0.jar解决方式原创 2022-01-24 16:27:35 · 4538 阅读 · 2 评论