文章
所有已发布的文章
-
Spring AOP 底层到底用的啥?JDK 动态代理 vs CGLIB 动态代理,区别在哪?本文用「售票员卖票」场景讲解:静态代理只能代理特定类,动态代理可代理任意对象。附 JDK Proxy 源码深度剖析(从 newProxyInstance 到 ProxyClassFactory),以及 Spring 的代理选择原则。
-
clone() 方法你真的会用吗?浅克隆的坑你踩过没?引用对象地址相同,改一个全变了!本文用「印钞机打印纸币」的场景,对比浅克隆 vs 深克隆的实现差异。深克隆需要实现 Serializable 接口,通过序列化/反序列化实现真正的对象复制。附 BeanUtils、JSON.parseObject 等常见应用。
-
单例模式怎么写才安全?7 种实现方式全解析!饿汉式、懒汉式、双重检查锁、静态内部类、枚举、容器式、ThreadLocal——哪种最推荐?更关键的是:反序列化和反射都能破坏单例!本文深入 ObjectInputStream 源码,揭秘 readResolve 方法的原理。
-
简单工厂生产单一产品,工厂方法还是单一产品,抽象工厂才是「产品族」!本文用科技公司卖手机+笔记本+耳机的场景讲解:小米、华为、苹果三家公司,每家都有自己的产品线。TechFactory 抽象工厂定义 sellPhone/sellLaptop/sellEarPhone 三个方法,子类各自实现。附 Spring AbstractBeanFactory 源码分析。
-
企业微信扫码登录怎么接?JustAuth 新增企业微信支持!本文详解:注册企业微信 → 创建应用 → 配置授权回调域 → 获取 4 个关键参数(client-id、client-secret、redirect-uri、agent-id)。最后用 justauth-spring-boot-starter 三步完成集成,附效果截图。
-
不用 Spring Boot 也能快速接入第三方登录!本文演示 JFinal 框架如何通过 JustAuth 集成 QQ、GitHub、小米登录。踩坑记录:JFinal 路由不支持 /{type}/callback 格式,回调地址要改成 /callback/{type}。附完整配置文件和 Controller 代码。
-
QQ、微信、GitHub、Google、微软……7 种第三方登录一次搞定!使用 JustAuth + justauth-spring-boot-starter 快速集成,yml 配置 + 一个 Controller 就能跑。本文还手把手教你搭建 frp 内网穿透环境、各平台应用申请流程,从零到能跑的完整指南。
-
本地搭建 K8s 集群?先来几台 CentOS 虚拟机!Vagrant + VirtualBox 比手动安装快 10 倍。本文从零开始:box 镜像下载、vagrant init/up 基础命令、共享文件夹和网络代理配置。最后附一个完整 Vagrantfile 案例:一键创建 3 节点集群,自动安装 Docker 并设置开机启动。
-
Spring Boot 项目总是重复造轮子?scaffold 开源脚手架帮你搞定!10 个模块覆盖常见需求:launcher 多环境启动器、common 统一返回格式、log 操作日志注解、swagger 自动装配、web 全局异常处理、code 验证码、notification 钉钉/邮件/短信通知、codegen 代码生成器。开箱即用,让你专注业务逻辑。
-
每个 Mapper.xml 都写一堆 if 条件太烦了!本文提供通用高级查询方案:定义 AdvanceQuery 模型封装 key/op/value,SQL 片段支持 eq/gte/lte/between/in/notin/like 等 9 种操作符。前端传 JSON 数组,后端动态拼装 WHERE 条件。一套模板复用所有查询,告别重复代码。附完整 XML 模板和 PostMan 测试示例。