MyBatis-Plus 实战避坑指南
想象这样一个场景:你优雅地配置了 MyBatis-Plus 的 MetaObjectHandler,创建、更新操作的时间戳、操作人信息都能自动填充,开发效率飞升。但很快挑战接踵而至——修改数据时 update_date 没更新?removeByIds 删除后数据库却没有更新人记录?甚至一次常规更新操作后,后台数据竟然“忘了”记录这次修改!这些困扰很多开发者的 updateFill “失灵”、...密码存储安全设计与实践指南
每次看到
MD5
、明文 甚至base64
存储的密码,心就凉半截。密码安全是系统根基,存不好,一出事就是大事。这篇就来讲讲怎么安全地存密码。不整虚的,核心就两条:用对算法 + 关键实践做到位。这里会重点安利目前公认最强的
Argon2id
,并给出一套实际落地方案。还会聊聊性能怎么调,毕竟安全也不能把服务器跑垮了…
Java 中多种计算耗时方式详解
引言在日常的 Java 开发过程中,性能问题往往是影响用户体验与系统稳定性的关键因素之一。无论是在调试某段逻辑执行是否过慢,还是在优化某个热点方法,我们都离不开一个基本动作——统计代码的执行耗时。 Java 提供了多种方式来实现耗时统计,从最原始的 System.currentTimeMillis()、System.nanoTime(),到更现代化的 StopWatch 工具类(Spring...使用 acme.sh 自动申请、续期免费的 SSL 证书
引言在现代 Web 开发中,为网站启用 HTTPS 已经不是可选项,而是必选项。无论是保护用户数据安全、提升 SEO 排名,还是避免浏览器弹出“不安全网站”的警告提示,SSL 证书都成为了网站的标配。 虽然很多商业机构提供收费的 SSL 证书,但 Let’s Encrypt 的出现彻底改变了这一格局。作为一个由社区推动的公益项目,Let’s Encrypt 提供免费、自动化、可信任的 SSL...优化多表查询:使用中间表和观察者模式提升性能
在现代软件开发中,数据库设计和查询优化是至关重要的。阿里巴巴 Java 开发手册中明确指出,使用多张表进行
JOIN
操作时不应超过三张表,因为超出这一数量会带来显著的性能问题。尤其是在数据量大、查询复杂的情况下,这种多表连接会导致查询效率低下,增加数据库负担,甚至可能影响系统的响应时间。