mirror of
https://gitee.com/battcn/wemirr-platform.git
synced 2026-05-06 16:50:28 +08:00
fix[IHQOLK]:修复SpringBoot4 下Long精度丢失问题
This commit is contained in:
@@ -81,9 +81,24 @@ public class DefaultWebMvcConfiguration implements WebMvcConfigurer {
|
||||
}
|
||||
|
||||
/**
|
||||
* 提供全局 ObjectMapper Bean
|
||||
* Spring Boot 4 模块化了 Jackson 自动配置,手动提供并配置 ObjectMapper
|
||||
* 配置与 JacksonUtils.createDefaultObjectMapper() 保持一致
|
||||
* Spring Boot 4 正确做法:通过 JsonMapperBuilderCustomizer 定制 Jackson 3 的 JsonMapper
|
||||
* 注册 Long→String 序列化器,防止前端 JavaScript 精度丢失
|
||||
*/
|
||||
@Bean
|
||||
public org.springframework.boot.jackson.autoconfigure.JsonMapperBuilderCustomizer longToStringCustomizer() {
|
||||
return builder -> {
|
||||
tools.jackson.databind.module.SimpleModule longModule = new tools.jackson.databind.module.SimpleModule("LongToString");
|
||||
longModule.addSerializer(Long.class, tools.jackson.databind.ser.std.ToStringSerializer.instance);
|
||||
longModule.addSerializer(Long.TYPE, tools.jackson.databind.ser.std.ToStringSerializer.instance);
|
||||
longModule.addSerializer(long.class, tools.jackson.databind.ser.std.ToStringSerializer.instance);
|
||||
builder.addModule(longModule);
|
||||
log.info(">>> Registered Long->String serializer via JsonMapperBuilderCustomizer (Jackson 3)");
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* 提供全局 Jackson 2 ObjectMapper Bean(供非 HTTP 场景使用,如 JacksonUtils 等)
|
||||
* HTTP 序列化已由上方 JsonMapperBuilderCustomizer 处理
|
||||
*/
|
||||
@Bean
|
||||
@Primary
|
||||
|
||||
Reference in New Issue
Block a user