Spring Boot 3.2.4中Base64Utils.encodeToString弃用后的迁移方案咨询
Spring Base64Utils 弃用后的代码迁移方案
org.springframework.util.Base64Utils 从Spring 6.0.5起被标记为弃用待移除,Spring Boot 3.2.4中其encodeToString等方法也已弃用,官方推荐直接使用JDK标准库的java.util.Base64工具类进行替代,具体迁移方式如下:
编码场景迁移
标准Base64编码(对应原Base64Utils.encodeToString)
原代码:
import org.springframework.util.Base64Utils; byte[] data = "test".getBytes(); String encoded = Base64Utils.encodeToString(data);
迁移后代码:
import java.util.Base64; byte[] data = "test".getBytes(); String encoded = Base64.getEncoder().encodeToString(data);
URL安全的Base64编码(对应原Base64Utils.encodeUrlSafeToString)
原代码:
String encodedUrlSafe = Base64Utils.encodeUrlSafeToString(data);
迁移后代码:
String encodedUrlSafe = Base64.getUrlEncoder().encodeToString(data);
解码场景迁移
标准Base64解码(对应原Base64Utils.decodeFromString)
原代码:
byte[] decoded = Base64Utils.decodeFromString(encoded);
迁移后代码:
byte[] decoded = Base64.getDecoder().decode(encoded);
URL安全的Base64解码(对应原Base64Utils.decodeUrlSafeFromString)
原代码:
byte[] decodedUrlSafe = Base64Utils.decodeUrlSafeFromString(encodedUrlSafe);
迁移后代码:
byte[] decodedUrlSafe = Base64.getUrlDecoder().decode(encodedUrlSafe);
注意事项
- JDK的
java.util.Base64从Java 8开始提供,Spring Boot 3.x要求Java 17及以上版本,完全兼容该API,无需额外引入依赖。 - 原
Base64Utils本质是对JDK Base64实现的封装,迁移后功能完全一致,不会影响业务逻辑。
内容的提问来源于stack exchange,提问作者Peter Penzov
相关产品推荐
相关产品推荐

