97827b6ff0d9a4e02c4369eb0467c4cd388ec450
Spring Boot 4.0.6 默认引入 Jackson 3.1.2,但项目中 1018 处 @JsonSerialize 注解使用的是 Jackson 2 的 com.fasterxml.jackson.* 包,导致注解被忽略, Long 字段序列化为裸数字,引发前端 JS Number 精度丢失(Bug #681 的根因)。 - com.fasterxml.jackson.databind.* → tools.jackson.databind.* - com.fasterxml.jackson.core.* → tools.jackson.core.* - com.fasterxml.jackson.annotation.* 保留(Jackson 3 仍用同包名) - com.fasterxml.jackson.datatype.jsr310.* 保留(不再需要,Jackson 3 内置 JavaTime 支持) - JsonSerializer<T> → ValueSerializer<T> - JsonDeserializer<T> → ValueDeserializer<T> - SerializerProvider → SerializationContext - JsonMappingException → DatabindException - JsonProcessingException → JacksonException(变 RuntimeException) - ContextualSerializer → 合并入 ValueSerializer(createContextual 成 default 方法) - LaissezFaireSubTypeValidator → BasicPolymorphicTypeValidator.builder() - Jackson2ObjectMapperBuilderCustomizer → JsonMapperBuilderCustomizer - ObjectMapper.configure() 返回 void → JsonMapper.builder().disable(...).build() - ObjectMapper.setPropertyNamingStrategy() → JsonMapper.builder().propertyNamingStrategy() - ObjectMapper.setDateFormat() → JsonMapper.builder().defaultDateFormat() - ObjectNode.fieldNames() → JsonNode.propertyNames()(返回 Collection<String>) - SerializationFeature.WRITE_DATES_AS_TIMESTAMPS 已移除(JavaTime 自动处理) - ObjectMapper 的 JavaTimeModule 注册不再需要(Jackson 3 内置) - core-framework/.../ApplicationConfig.java:重写为 JsonMapperBuilderCustomizer + 自定义 LocalDateTime 序列化(Jackson 3 内置 ext.javatime.*) - core-framework/.../FastJson2JsonRedisSerializer.java:用 BasicPolymorphicTypeValidator 替代 LaissezFaireSubTypeValidator - core-common/.../JsonUtils.java:改为 JsonMapper.builder() 模式 - core-common/.../SensitiveJsonSerializer.java:JsonSerializer → ValueSerializer - 5 个模块 jackson-databind groupId 改为 tools.jackson.core(版本由 Spring Boot BOM 管理) - jackson-annotations 保留 com.fasterxml.jackson.core(Jackson 3 仍用同包名) - ✅ mvn compile 全 11 模块通过 - ✅ mvn package 成功生成 fat JAR - ✅ 后端启动正常(JDK 25,Spring Boot 4.0.6) - ✅ 登录 API 返回 JWT token - ✅ /charge-manage/charge/encounter-patient-page 响应: - encounterId: "2032288214655660033"(字符串,@JsonSerialize 生效) - patientId: "2026486681850499074"(字符串,@JsonSerialize 生效) - ✅ Bug #681 根因彻底解决(Long 精度丢失) - Bug #681(前端兜底 fix: acf685fba)+ 本 commit(后端根治) - Bug #281(历史 jsr310 模块问题)随 Jackson 3 内置 JavaTime 一并解决 - Playwright E2E 全量回归(51 个 spec) - 时间字段序列化专项测试(LocalDateTime 格式验证) - 删除 Jackson 2 starter(spring-boot-jackson2)的可行性评估
Description
No description provided
Languages
Java
47.5%
Vue
45.4%
JavaScript
4.4%
Python
1.3%
HTML
0.6%
Other
0.7%