Sa-Token + JWT 集成到 Spring Boot:从登录鉴权到权限控制的完整接入指南
这篇文章用一个 Spring Boot 示例,梳理 Sa-Token 与 JWT 的集成思路:从依赖、配置、拦截器,到登录接口、权限校验和前端携带 token 的请求方式。文中同时补充了明文密码、返回敏感字段和拦截路径划分等落地时最容易踩到的细节。
这篇文章用一个 Spring Boot 示例,梳理 Sa-Token 与 JWT 的集成思路:从依赖、配置、拦截器,到登录接口、权限校验和前端携带 token 的请求方式。文中同时补充了明文密码、返回敏感字段和拦截路径划分等落地时最容易踩到的细节。

文章围绕 Java 中最常见的一类泛型报错展开:为什么 `StudyPoint implements IAdjIniPoint`,却仍然不能把 `List ` 直接当成 `List ` 使用。文中会拆开不变性、`? extends`、`? super` 与 PECS 的实际含义,并补充和 C# 在协变支持上的关键差异。 在 Java 里,`StudyPoint` 实现了 `IAdjIniPoint`,但 `List ` 依然不能赋给 `List `,根因是泛型默认不变。处理这类问题时,先区分读还是写:只读用 `? extends`,只写用 `? super`,需要真正的接口类型列表就用 `new ArrayList(studyPoints)`,如果还在设。

这篇入门指南围绕 Java 新手最常见的 `static` 困惑展开:为什么 `main` 里不能直接调普通方法、为什么有的属性互不影响、有的却会一起变。文章用报错、代码运行结果和使用场景三条线,把“属于类”与“属于对象”的区别讲清楚。

PO、DO、BO、DTO、VO 经常一起出现,但很多团队对它们的边界并不统一。本文按分层职责、典型场景和常见混用问题重新梳理 5 类对象,保留 Java 示例代码,并给出在小型项目和中大型项目中的实际取舍建议。

想在 Trae 里切换全局默认 JDK,关键不在环境变量,而在 `setting.json` 里的两个 Java 路径配置。本文把入口位置、需要同时修改的字段,以及快速查找本机 JDK 路径的方法整理成一套可直接照做的步骤。 Trae 里切换默认 JDK,看起来只是改个路径,但实际常出问题的地方在于配置项不止一个:JDK 装好了、环境变量也没错,编译或语言服务还。

Ubuntu 上部署 ZooKeeper 时,Java 版本不能只看系统环境,关键要看 ZooKeeper 所属系列。3.4.x 仍兼容 JDK 6/7/8,而从 3.5.5 起最低要求已经提升到 JDK 8,实际部署更建议优先选 8、11、17 这类 LTS 版本。 在 Ubuntu 上部署 ZooKeeper,最容易被忽略的问题不是安装命令本身,而是 Java 版本和 ZooKeeper 版本是否对得上。

在 Debian 上做 Java 开发,难点往往不是语法和框架,而是怎样快速找到可信、持续更新的社区资源。这篇文章把 Wiki、邮件列表、软件包搜索、Apt 仓库、Stack Overflow、GitHub 和社区博客几类渠道按用途拆开,帮助你判断遇到不同问题时该先去哪里找答案。

Ubuntu 下 Java 编译报错,通常先别急着改代码,情况多半集中在 JDK 安装、`javac` 命令不可用、环境变量未生效或 classpath 配置错误。本文按排查顺序整理常见原因,并给出对应命令与判断方法,适合快速定位。

这篇入门文章围绕 Kotlin 的语言定位与基础类型展开,适合刚接触 Kotlin 的读者快速建立第一层认知。文中保留了整型、字符、布尔、字符串与类型转换示例,并补充了 Kotlin 为什么适合 Android 与 Java 项目的关键背景。

在 Ubuntu 下修改 Java 编译输出目录,关键是给 `javac` 加上 `-d` 选项。本文用一个最小示例说明命令写法、输出结果和包结构对应关系,顺带解释为什么目录设置不当容易引发 classpath 与找不到类的问题。

在 Debian 上做 Java 编译,风险通常不在单一漏洞,而在更新、依赖、权限和运行环境几个环节同时失守。本文按实际操作顺序梳理一套防范思路,保留关键命令、配置点和工具名称,帮助你判断哪些措施该优先落地。

Java 里单引号和双引号不能混用:前者对应 `char`,后者对应 `String`。这篇文章用最容易踩坑的空格判断示例,讲清两者的类型差异、使用边界,以及什么时候该直接比较字符,什么时候再用字符串方法。
