从 4.x 到 5.x 的迁移指南
Spring Data MongoDB 5.x 要求使用 MongoDB Java Driver 5.6 及以上版本。
要了解有关驱动程序版本的更多信息,请访问 MongoDB 文档。
移除 MongoDB Java Driver 4.x 兼容性
Spring Data MongoDB 不再支持 4.x 世代的 MongoDB Java Driver。
UUID 表示形式变更
Spring Data 不再通过其配置支持类、工厂 Bean 或 XML 命名空间为 UUID 设置提供默认值。
要持久化 UUID 值,必须显式设置 UuidRepresentation。
- Java
- XML
@Configuration
static class Config extends AbstractMongoClientConfiguration {
@Override
protected void configureClientSettings(MongoClientSettings.Builder builder) {
builder.uuidRepresentation(UuidRepresentation.STANDARD);
}
// ...
}
<mongo:mongo-client>
<mongo:client-settings uuid-representation="STANDARD"/>
</mongo:mongo-client>
BigInteger/BigDecimal 转换变更
Spring Data 不再通过其配置支持类为 BigInteger/BigDecimal 转换提供默认值。要持久化这些值,必须显式设置默认的 BigDecimalRepresentation。
@Configuration
static class Config extends AbstractMongoClientConfiguration {
@Override
protected void configureConverters(MongoConverterConfigurationAdapter configAdapter) {
configAdapter.bigDecimal(BigDecimalRepresentation.DECIMAL128);
}
// ...
}
从早期版本升级的用户可以选择 BigDecimalRepresentation.STRING 作为默认值,以保留原先的行为。
DefaultMessageListenerContainer 自动启动
可用于监听(例如_变更流_)的 DefaultMessageListenerContainer,现在默认将其 SmartLifecycle 自动启动设为 true。
停止支持 JMX。
我们建议切换到 Spring Boot 的 Actuator 端点。