Spring Boot 项目 Dockerfile 调整优化备忘 —— Could not find or load main class PropertiesLauncher

文章说明了 Spring Boot 3.2 版本将 PropertiesLauncher 和 JarLauncher 类移至org.springframework.boot.loader.launch 包。这影响了使用解压 fat JAR 方式构建 Docker 镜像的 Dockerfile,需更新 ENTRYPOINT 命令中的类路径。java -jar 启动方式不受影响。建议利用 Spring Boot 分层 JAR 特性和 Docker 多阶段构建优化镜像,并记得关注 Release Notes 以便跟进相应变更。

Spring Boot 项目接口 XSS 漏洞处理

本文介绍了在 Spring Boot 项目中避免 XSS 漏洞的几种方式。首先,可以使用 Spring 框架提供的 HtmlUtils 类对特殊字符进行转义处理。其次,可以使用 Jsoup 库对 HTML 标签进行过滤,保留需要的标签并删除不必要的标签。另外,还可以通过装饰者模式结合过滤器或拦截器对请求参数进行过滤转义。最后,对于 JSON 形式传参的场景,可以定义一个全局的 JSON 反序列化器来进行处理。总之,通过这些方式可以有效地避免 Spring Boot 项目中的 XSS 漏洞。

为什么 @Autowired 注解在 IDEA 中会有警告提示

在 IDEA 中,使用 @Autowired 注解会出现警告提示。这是由于最佳实践和设计原则导致的。字段注入方式虽然简洁方便,但存在一些问题,会增加应用程序与框架之间的紧耦合。为了消除警告,可以使用 @Resource 注解替换 @Autowired 注解。三种主要的依赖注入方式是:字段注入、构造函数注入和 Setter 方法注入。推荐使用构造函数注入,并可结合 lombok 来简化代码。