Java 8 到 17 新特性实战:从 Stream 到 Record,真正写出现代代码
还在用 for 循环遍历集合、用一长串 if 判空、写一堆 getter/setter/toString?这些写法能跑,但早已不是现代 Java 的最优解。
Java 8 到 Java 21,到底升级了什么?一文看懂现代 Java 的核心变化
《Java 技术进化论》专栏 · 第二篇如果你是一名 Java 开发人员,可能会发现一个有意思的现象:很多企业项目仍然运行在 Java 8 上,而新一代 Spring Boot 项目已经开始使用 Java 17、Java 21,甚至 Java 25。
2026-09-11-SpringBoot迁移清单
问题1:你以为只是换个框架,其实你在改"团队语言"转 Spring Boot 最大的冲击,不是代码不会写,而是你团队里每个人脑子里的"思维方式"都要跟着改。Laravel 时代我们组的习惯是:"这功能先跑起来,性能后面再说。
强制更新的截止时间按谁的时区算:跨地区机器怎么排这一版
先给结论:声明式更新里的强制执行时间,是按设备自身的本地时区来算的,不是按服务器时间,也不是按管理员所在时区。好处是一份声明可以跨地区通用;代价是你不能拿一个墙钟时间去给整批机器排产,必须按各机器所在时区折算。
单一职责原则:JAVA LocalDate的设计取舍
学习和理解单一职责,一个比较好的办法,是去看一个真正按这个原则设计的类。比如JDK 17里的java.time.LocalDate。第一次接触LocalDate时,很容易会认为,既然它负责表示日期,那日期格式化是不是也应该由它来做?但实际上,LocalDate根本不负责格式化。
周五改个时间字段,线上接口全红:TIMESTAMP 换 DATETIME 的隐形坑
摘要:一个库存保存接口,仅把 create_time/update_time 从 TIMESTAMP 改为 DATETIME,发版后大量报“字段没有默认值 / 不能为 null”。
spring-rest接口LocalDateTime转时间戳
本文介绍spring-rest接口中的LocalDateTime日期类型转时间戳的方法。 具体的代码参照 示例项目 https://github.
MCP Server 实战:Java 接口变 AI 工具
摘要: 用 Spring AI 把现有 Java 接口包装成 MCP Server,一次实现,Claude Desktop、Cursor 等所有 MCP 客户端都能直接调用。
第27讲 Spring Boot 定时任务与邮件发送
本讲示例与实战用到的全部依赖:说明:1 spring-boot-starter-mail 内置 JavaMailSender、SimpleMailMessage、MimeMessageHelper;2 本讲统计表查询用 MyBatis 注解 SQL,因此需要 MyBatis 依赖;
线上日期突然跳到1970年,罪魁祸首竟是SimpleDateFormat
交易系统核心接口大面积报错,DBA 查数据库时间戳一切正常,NTP 同步没问题,服务器时区配置也没动过。但日志里密密麻麻的订单创建时间全是 1970年1月1日——有的甚至是 2037年。更诡异的是,流量降下来之后,错误自己消失了。第二天凌晨三点,准时复发。