- 博客(206)
- 资源 (42)
- 收藏
- 关注
原创 Spring Boot 配置 diff 实战
是一个强大的文本差异比对库,源自 Google 的算法。• 精准识别文本的增删改变化• 生成类似git diff的差异报告• 支持行级、字符级的细粒度比对• 提供多种差异格式输出(unified、inline 等)虽然是个小工具,但在配置管理场景下非常实用。通过本文的实践,你可以轻松实现配置文件差异比对、可视化展示、变更审计等功能。下面仓库提供了完整的web在线比对DEMO。
2026-01-01 10:11:03
310
原创 除了 ELK、Loki,你还应该知道的日志收集方式:Syslog
Syslog 是一种用于在 IP 网络中转发日志消息的标准协议。最早由 BSD Unix 实现,后来经过多次标准化,目前主流遵循的是RFC5424标准(2009年发布)。部分说明示例值<PRI>优先级(设施+级别)<34>VERSION协议版本1TIMESTAMP时间戳HOSTNAME主机名server01APP-NAME应用名称sshdPROCID进程 ID1234MSGID消息 ID(未设置)结构化数据MSG实际消息内容优先级(PRI)设施(Facility)0- kern(内核)1。
2025-12-29 08:19:05
763
1
原创 SpringBoot 该不该用统一包装类
/ 形态一:code + msg + data// 形态二:带上时间戳、traceId等这样包装的理由主要有三个:第一,前端解析方便。所有接口返回结构一致,前端只需要写一套解析逻辑,不需要每个接口单独处理。第二,可以携带业务错误码。比如"用户不存在"对应10001,"余额不足"对应10002,"参数校验失败"对应10003,前端可以根据不同的错误码做不同的处理,比如10002直接跳转到充值页面。第三,方便统一做异常转换。通过可以把所有异常统一转换成Result。
2025-12-25 08:21:40
904
原创 Spring Boot 中统一同步与异步执行模型
这个接口只包含业务关心的元素:有上下文()、有执行结果(R)、可能抛出异常。它不关心任何执行细节——同步还是异步、用哪个线程池、怎么调度,都和它没关系。通过统一执行模型的设计,我们可以将业务逻辑与执行方式1. 代码可控:不再到处是@Async和,所有执行都有统一入口;2. 上下文不丢:请求ID、操作人等信息在同步/异步中都能正确传递;3. 扩展方便:要加重试、限流、熔断?在引擎层统一实现即可,业务代码无需修改;4. 降低认知成本:新同学不需要刻意区分同步/异步方法,调用方式完全一致。
2025-12-22 08:31:41
647
原创 Docker 容器实现按顺序启动
按顺序启动 Docker 容器不仅仅是容器启动顺序问题,更重要的是服务依赖就绪问题。实际需要根据项目复杂度选择合适的启动策略方案适用场景优点缺点简单depends_on服务启动快、依赖简单的场景配置简单,开箱即用不保证服务就绪健康检查 +depends_on生产环境、复杂依赖可靠性高,自动化管理需要配置健康检查入口脚本等待需要精细化控制灵活可控,支持复杂逻辑需要编写和维护脚本外部脚本特殊定制需求完全自定义控制流程维护成本高。
2025-12-18 07:22:08
435
原创 Spring Boot 打造通用CLI命令系统
本文介绍的"通用命令+动态分发"方案,通过Spring Boot + Spring Shell构建,使用单一 exec 命令实现多服务动态调用,大幅简化了CLI系统的维护复杂度。
2025-12-15 07:58:14
777
原创 Spring Boot 实现单账号登录控制
Token认证:使用自定义Token替代传统的Session机制。Token是无状态的,可以在分布式环境下轻松扩展,同时避免了Session共享的复杂性问题。拦截器验证:通过Spring MVC的拦截器机制统一处理登录验证。这种方式的优点是不需要修改业务代码,通过配置即可实现对所有请求的拦截。接口抽象:定义清晰的SessionManager接口,将存储逻辑与业务逻辑分离。这样既可以使用Map实现,也可以轻松切换到Redis,为系统扩展提供可能。模式切换。
2025-12-11 08:04:23
915
原创 Spring Boot实现文件访问安全
通过本文的介绍,我们了解了Spring Boot应用中文件访问的主要安全风险和相应的防护措施。文件安全是一个持续的过程,需要定期审查和更新安全策略。通过实施上述措施,您可以显著提高Spring Boot应用的文件访问安全性,有效防范任意文件访问漏洞。
2025-12-08 08:08:15
478
原创 SpringBoot ThreadLocal 父子线程传值的几种实现方式
Spring提供了TaskDecorator接口,允许我们对Runnable任务进行装饰@Override// 设置自定义装饰器@Override// 获取父线程的ThreadLocal上下文try {// 在子线程中复制上下文// 收集当前线程的ThreadLocal值// 例如:从自定义的ThreadLocal中获取= null) {= null) {// 在子线程中设置上下文// 清理上下文,防止内存泄漏。
2025-12-04 08:05:34
600
原创 Spring Boot实现HTTPS双向认证
单向认证客户端 服务器| ||-- 发送HTTPS请求 ------------------>||<-- 返回服务器证书 -----------------||-- 验证证书有效性 ----------------->||-- 建立加密连接 -------------------->||<-- 正常数据交换 -------------------|问题:服务器无法验证客户端身份,任何人都可连接双向认证客户端 服务器| ||-- 发送HTTPS请求 ------------------>|
2025-12-01 07:40:55
658
原创 Spring Boot模板引擎在后端开发中的实战应用
Spring Boot模板引擎为后端开发提供了强大的自动化生成能力,有效解决了重复性工作的痛点,通过掌握Spring Boot模板引擎,开发者能够构建高效的自动化工具链,将更多精力投入到业务逻辑的实现中,提升整体开发效率和代码质量。
2025-11-27 08:03:57
429
原创 Spring Boot拦截器结合HMAC-SHA256实现API安全验证
数字签名是一种用于验证数据完整性和真实性的技术手段。1. 身份验证:确认请求方身份的合法性2. 数据完整性:确保请求参数在传输过程中未被篡改3. 防止重放攻击:通过时间戳等机制防止请求被重复使用通过 Spring Boot 拦截器和 HMAC-SHA256 算法,我们实现了一套完整且实用的 API 签名验证方案。这套机制有效解决了系统间调用的安全问题,而且对现有代码几乎零侵入,直接复用即可。在实际项目中,你可以根据具体需求调整时间戳容忍度、密钥管理策略等配置,实现灵活的安全控制。
2025-11-24 07:55:42
641
原创 SpringBoot DFA 实现敏感词过滤
DFA 算法通过 Trie 树结构,为敏感词过滤提供了一个兼具效率和准确性的解决方案。在实际应用中,需要根据具体的业务场景选择合适的实现策略。无论是追求极致性能的聊天系统,还是注重准确率的内容审核平台,DFA 算法都能提供坚实的基础支撑。
2025-11-20 07:58:36
868
原创 Spring Boot + MyBatis:实现数据库字段级加密
/ 是否支持模糊查询@Encrypted // 这个字段会自动加密@Encrypted // 这个字段也会自动加密使用简单:只需要在字段上加个注解就行代码干净:业务代码不用关心加解密逻辑安全可靠:使用标准的加密算法容易维护:所有加密逻辑集中管理适用场景用户管理系统支付系统医疗信息系统任何需要保护敏感数据的系统不适用场景对性能要求极高的系统需要对加密字段进行复杂查询的场景数据量特别大的系统如果你也有保护敏感数据的需求,这个方案值得考虑。代码量不大,但效果很明显。
2025-11-17 07:39:21
453
原创 从擦除到恢复:JSON 库是如何“还原” Java 泛型信息的
泛型擦除是Java语言的特性,但通过各JSON库提供的TypeReference/TypeToken机制,我们可以优雅地解决这个问题。掌握不同JSON库的泛型处理方法,能够让我们在实际项目中根据需求做出最合适的技术选型。
2025-11-13 08:04:06
462
原创 SpringBoot实现隐式参数注入
通过 Spring MVC 的 HandlerMethodArgumentResolver我们实现了一个可以"跨 Filter 与 Controller 传参"的技术实现方案。将底层 Servlet API 的 request.getAttribute() 操作抽象为编译时类型安全的方法参数注入,实现了框架层面的参数解析适配,既保持了架构的纯净性,又提供了强大的扩展能力。
2025-11-10 07:55:34
643
原创 Jackson视图神技:一个DTO干掉N个DTO,告别DTO爆炸问题
/ 公共基础视图// 摘要视图(继承Public)// 详情视图(继承Summary)// 管理员视图(继承Detail)减少DTO类数量:从N个DTO合并为1个DTO降低维护成本:字段变更时只需修改一处提高代码可读性:视图名称直观,用途明确保持灵活性:通过视图组合满足复杂业务需求适用场景同一实体在不同接口中需要返回不同字段需要区分用户权限看到不同数据API版本升级时需要渐进式暴露字段不适用场景字段差异极大,无法通过视图合理组织。
2025-11-06 07:59:26
524
原创 Spring Boot 手撸一个自助报表系统
这套技术方案可以解决报表功能重复开发的具体问题,当然本DEMO还相对简陋,重要的是展示了一种自助报表服务的技术实现思路。在面向业务人员的系统中,通过抽象和简化,我们可以构建出既强大又易用的工具平台。真正的技术创新,往往来自于对用户需求的深度理解。当我们不再局限于技术实现的复杂性,而是从用户角度思考问题时,就能找到更实用、更受欢迎的解决方案。
2025-11-03 08:00:21
1047
原创 SpringBoot 时间轮实现延时任务
本文展示了时间轮的设计与实现,从算法原理到可视化监控。时间轮通过巧妙的时间维度空间化思想,用简单的指针移动实现了高效的定时任务调度,在高并发场景下展现出卓越的性能优势。
2025-10-30 07:45:32
961
原创 BSON vs JSON:不只是“二进制“这么简单
BSON 远不止是"二进制的 JSON"这么简单。它通过丰富的数据类型支持、高效的二进制格式设计和针对特定场景优化的特性,为现代应用提供了另一种数据处理选择。没有绝对的"最优"格式,只有最适合特定场景的选择。JSON 在通用性、可读性和生态系统方面具有明显优势,而 BSON 在特定场景下的存储效率和类型支持方面表现更佳。理解不同数据格式的设计理念和适用场景,有助于我们在实际项目中做出更合理的技术选型。
2025-10-27 07:52:38
759
原创 告别重复编码!SpringBoot + JSON Schema 动态表单开发
基础字段定义"title": "用户名","description": "3-20位字母、数字或下划线"复杂对象嵌套"title": "个人信息","phone": {"description": "请输入11位手机号码"动态数组字段"title": "兴趣偏好","items": {},通过构建的动态表单这套技术方案不仅解决了表单开发的具体问题,更重要的是展示了一种配置驱动的架构思想。在面对复杂多变的业务需求时,通过抽象和标准化,我们可以构建出既灵活又稳定的系统架构。
2025-10-24 07:36:10
948
原创 SpringBoot “分身术”:同时监听多个端口
Override// 为用户端配置前缀// 为管理端配置前缀// 定义注解构建"双面" Spring Boot 应用是一个有趣且实用的技术挑战。多 Connector 方案:适合简单场景,实现直接路径前缀方案:适合需要清晰 API 结构的场景在某些特定场景下确实能够简化系统架构,降低运维成本。但同时也要注意避免过度复杂化,确保系统的可维护性和可扩展性。
2025-10-21 07:43:57
367
原创 除了JSON/XML,你还应该了解的数据描述语言ASN.1 —— 附《SpringBoot实现ASN.1在线解析工具》
在日常开发中,我们经常接触JSON、XML等数据格式,但你是否听说过ASN.1?这种在通信、安全、物联网领域广泛使用的数据描述语言。可能对一部分开发者来说有些陌生,但在特定场景下却有着不可替代的作用。今天,我们就来深入了解一下ASN.1,并用SpringBoot实现一个在线解析工具。ASN.1(Abstract Syntax Notation One)是一种标准化的数据描述语言,由ITU-T(国际电信联盟)和ISO(国际标准化组织)共同制定。它提供了一种平台无关的语言来描述数据结构,并定义了数据的编码规则。
2025-10-17 07:37:59
1105
原创 SpringBoot实现JWT动态密钥轮换
在实际项目中,密钥管理往往是被忽视的角落。直到安全审计时才发现问题。通过合理运用JWT的KID字段和RSA的非对称特性,我们可以让系统自动处理密钥轮换,而不是事后补救。从代码量来看,增加密钥轮换功能并不需要大幅改动现有架构,但带来的安全收益是长期的。
2025-10-15 07:32:24
695
原创 SpringBoot 实现自动数据变更追踪
通过 Javers + AOP + 注解的组合,我们实现了一个零侵入的数据变更审计系统。开发效率提升:无需在每个业务方法中编写审计逻辑维护成本降低:审计逻辑集中在切面中,便于统一管理数据质量改善:结构化的审计日志便于查询和分析技术方案没有银弹,需要根据具体业务场景进行调整。如果您的项目也有数据审计需求,这个方案可以作为参考。
2025-10-12 08:07:30
357
原创 从RBAC到ABAC的进阶之路:基于jCasbin实现无侵入的SpringBoot权限校验
引入 JCasbin 后,项目结构会发生显著变化👇优势描述逻辑解耦授权逻辑完全从业务代码中剥离灵活配置权限规则动态可改、可热更新可扩展可根据属性定义复杂条件统一决策所有权限判断走同一引擎可测试策略可单测,无需跑整套业务流程新增规则无需改代码。只要在策略表里加一条记录,就能实现全新的授权逻辑。权限系统的复杂,不在于“能不能判断”,而在于——“判断逻辑放在哪儿当项目越做越大,你会发现:真正的架构能力,不是多写逻辑,而是让逻辑有边界。
2025-10-09 08:01:14
785
原创 SpringBoot安全进阶:利用门限算法加固密钥与敏感配置
门限算法(Shamir Secret Sharing)的价值在于✅避免单点故障:没有人或单个系统能独占核心密钥✅合规性更高:满足金融、政企的多方参与要求✅适合分布式:天然适配云计算、区块链、零信任架构✅数学保证:基于严格的数学证明,而非"安全假设"如果你平时做 Spring Boot 项目,不妨尝试把门限算法引入到密钥管理、敏感配置存储、权限审批 等场景中,提高系统的安全性和合规性。
2025-10-07 07:55:57
1068
原创 商业化必备:SpringBoot 实现许可证控制
本文介绍了一套基于Spring Boot + RSA2048的许可证控制系统实现方案,包含硬件指纹获取、数字签名验证、功能权限控制等核心功能,支持跨平台部署,提供完整的Web示例界面,适用于企业软件的商业化授权控制。
2025-10-02 07:53:43
650
原创 告别日志“大海捞针”,基于SpringBoot的错误指纹聚类实现
Override} else {// 输出增强的日志,包含指纹和统计信息基于Spring Boot的错误指纹聚类系统,通过MD5指纹算法和LRU缓存机制,将重复异常智能聚合,提高问题分析排查效率。同时可以扩展到FileAppender(本示例为方便演示使用的ConsoleAppender)实现错误日志去重输出,降低异常堆栈的日志存储量。
2025-09-28 07:26:40
498
原创 基于SpringBoot + QLExpress打造动态规则引擎
运营同学说:“双11活动规则临时调整,满300减60改成满200减50,能马上上线吗?产品经理说:“风控策略需要微调一下,这个规则能不能今晚就生效?老板说:“竞品降价了,我们的VIP折扣也要调整,最好现在就能改!每次遇到这种情况,我们都要:修改代码 → 重新打包 → 发布部署 → 重启服务。这个流程短则半小时,长则几个小时,错过最佳时机不说,还要承担发布风险。今天,我们来聊聊如何用动态规则引擎彻底解决这个痛点!业务敏捷:规则变更从小时级提升到分钟级系统稳定:减少了系统发布频次和风险团队协作。
2025-09-25 07:38:41
923
原创 SpringBoot中如何实现对静态资源的访问权限控制
当我们需要的不仅仅是“登录才能访问”时,就需要更灵活的方案。我们可以将静态资源“动态化”,通过一个 Controller 来代理文件的访问请求。方案优点缺点适用场景方案一:Spring Security全局保护配置简单,统一管理灵活性差,只能控制“是否登录”简单的内部系统,所有登录用户可访问所有资源方案二:自定义Controller代理极度灵活,安全性最高代码稍复杂,有一定性能开销需要复杂业务权限控制的场景(如网盘、订单附件)方案三:拦截器动态校验关注点分离,改造方便URL路径暴露。
2025-09-23 08:21:40
1037
原创 SpringBoot的零配置API文档工具的设计与实现
本文详细介绍了一个基于Spring Boot的零配置API文档工具的设计与实现。该工具通过深度应用Java反射机制,实现了对复杂泛型类型的完整解析,提供了智能的测试数据生成功能,并且对文件上传等特殊场景提供了支持。补充一点思考技术上能够解决现实问题,使用上足够简单以降低学习成本,功能上能够覆盖实际场景。在技术选型上,并不总是需要追求最新最炫的技术栈,合适的技术组合往往能够极大降低开发成本同时带来更好的实际效果。在功能设计上,从用户的实际需求出发,解决真正的痛点,比添加花哨的功能更有价值。
2025-09-20 08:35:05
764
原创 SpringBoot Jar包冲突在线检测
conflict : advisor : rules : # 规则名称 database-driver : # 匹配模式(支持正则表达式) patterns : - ".*mysql.*" - ".*postgresql.*" - ".*Driver.*" # 严重程度 severity : CRITICAL # 建议模板(支持变量替换) advice : | 🔗 数据库驱动冲突当前版本:${versions} 解决方案:1. 统一驱动版本2. 移除不需要的数据库驱动。
2025-09-16 07:51:24
849
原创 SpringBoot 方法级耗时监控器
支持方法级监控和时间段筛选提供直观的可视化界面和搜索功能具备良好的性能表现和稳定性开箱即用,适合中小型项目快速集成它不是 SkyWalking、Pinpoint 的替代品,但作为单机自研的小型 APM 解决方案,在简单性和实用性之间取得了很好的平衡。对于不需要复杂分布式追踪,但希望有基础监控能力的项目来说,这是一个不错的选择。
2025-09-12 08:05:59
910
原创 SpringBoot 实现无痕调试注入器,线上问题定位的新利器
这个 SpringBoot 无痕调试注入器一定程度上可以缓解线上问题排查的痛点排查效率:从"猜测-修改-发版-验证"变为"注入-观察-定位"风险控制:相比远程调试更安全,相比日志发版更快速使用体验:现代化 Web 界面,操作简单直观当然,它不是银弹,适合作为应急排障工具,而不是常驻监控方案。在关键时刻,它能让你快速定位问题,争取宝贵的修复时间。
2025-09-08 07:56:20
719
原创 SpringBoot 「热补丁加载器」:线上紧急 bug 临时修复方案
*** 补丁类型枚举*//*** Spring Bean 替换*//*** 普通Java类替换(整个类)*//*** 静态方法替换*//*** 实例方法替换*//*** 增强的热补丁注解*//*** 补丁类型*//*** 原始Bean名称(当type=SPRING_BEAN时使用)*//*** 原始类的全限定名(当type=JAVA_CLASS或STATIC_METHOD时使用)*//**
2025-09-04 07:52:11
1024
原创 SpringBoot 集成 Linux Watchdog:从应用层到系统级的自愈方案
Linux Watchdog 本质是一个内核驱动,通常通过设备暴露给用户空间。• 需要用户进程定时“喂狗”(写入数据);• 一旦超过设定时间没被喂 → Watchdog 触发动作(重启系统/关闭电源/触发 NMI 等);• 属于最后兜底机制,防止应用假死。1、Linux Watchdog 不是默认可用,需要安装软件包、加载驱动、配置 systemd 服务;2、Spring Boot 可以轻松集成 watchdog 喂狗机制;3、Watchdog 结合应用层监控,可以构建。
2025-09-02 07:50:24
417
原创 docker cp 引发的 node_exporter CPU 暴涨踩坑记
下午 3 点,团队同学反馈线上新上的服务器没跑几天CPU突然炸了node_exporter 进程 CPU 占用率接近 70%,重启node_exporter就好了,隔几个小时就又出现了。立马连上服务器检查了node_exporter日志及系统日志没有发现明显的错误日志。好在新服务没有切多少流量过来,可以基于线上环境进行一定的排查分析。
2025-08-30 07:46:30
477
原创 SpringBoot 程序 CPU 飙升排查:自制「方法级采样火焰图」
通过上面的方式,我们用极少的代码在 SpringBoot 程序里实现了一个轻量级的CPU 火焰图采样器。1、不依赖第三方大工具,随项目自带2、方法级别可视化,能快速定位 CPU 热点;3、火焰图展示直观、体验好;当然,这种方案有局限:1、采样频率过高会带来一定开销2、精度比不上专业的 async-profiler3、火焰图数据需要定期清理,避免内存膨胀。
2025-08-28 08:09:25
846
原创 SpringBoot 在线依赖包漏洞扫描仪,一键发现潜在安全漏洞
自动收集依赖,无需人工干预匹配漏洞库,输出 CVE 编号 + 漏洞描述提供漏洞详情信息,避免知道有问题但不知如何解决可视化展示,直观易懂。
2025-08-25 08:05:09
1109
常用JavaScript特效
2011-04-03
满汉楼餐饮管理系统JAVA项目源码
2011-04-27
mysql oracle sqlserver数据库jar包大全
2011-04-03
SQL语句大全 常用操作
2011-05-20
jsf jar包及学习文档
2011-05-27
object-c初学者中文详细教程
2011-05-06
java 多媒体播放器
2011-07-29
淘宝API文档手册淘宝API文档手册
2011-06-03
超级震撼的javascript网页效果
2011-09-30
Javascript高级教程
2011-08-19
js实现的俄罗斯方块
2011-09-30
java json包java json包java json包
2011-06-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅