栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

请使用“ MongoMappingContext#setAutoIndexCreation(boolean)”或覆盖“MongoConfigurationSupport#autoIndexCreati

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

请使用“ MongoMappingContext#setAutoIndexCreation(boolean)”或覆盖“MongoConfigurationSupport#autoIndexCreati

在application.properties文件中禁用自动索引创建

spring.data.mongodb.auto-index-creation=false

或application.yml文件

spring:  data:    mongodb:      auto-index-creation: false

创建类MongoConfiguration whit @Configuration批注

Injetc这种依赖

private final MongoTemplate mongoTemplate;private final MongoConverter mongoConverter;

并添加此方法

@EventListener(ApplicationReadyEvent.class)public void initIndicesAfterStartup() {    log.info("Mongo InitIndicesAfterStartup init");    var init = System.currentTimeMillis();    var mappingContext = this.mongoConverter.getMappingContext();    if (mappingContext instanceof MongoMappingContext) {        MongoMappingContext mongoMappingContext = (MongoMappingContext) mappingContext;        for (BasicMongoPersistentEntity<?> persistentEntity : mongoMappingContext.getPersistentEntities()) { var clazz = persistentEntity.getType(); if (clazz.isAnnotationPresent(document.class)) {     var resolver = new MongoPersistentEntityIndexResolver(mongoMappingContext);     var indexOps = mongoTemplate.indexOps(clazz);     resolver.resolveIndexFor(clazz).forEach(indexOps::ensureIndex); }        }    }    log.info("Mongo InitIndicesAfterStartup take: {}", (System.currentTimeMillis() - init));}

记住var仅适用于Java 11+

最后一课,使用龙目岛

import lombok.RequiredArgsConstructor;import lombok.extern.slf4j.Slf4j;import org.springframework.boot.context.event.ApplicationReadyEvent;import org.springframework.context.event.EventListener;import org.springframework.data.mongodb.core.MongoTemplate;import org.springframework.data.mongodb.core.convert.MongoConverter;import org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexResolver;import org.springframework.data.mongodb.core.mapping.BasicMongoPersistentEntity;import org.springframework.data.mongodb.core.mapping.document;import org.springframework.data.mongodb.core.mapping.MongoMappingContext;@Slf4j@RequiredArgsConstructor@Configurationpublic class MongoConfiguration {private final MongoTemplate mongoTemplate;private final MongoConverter mongoConverter;@EventListener(ApplicationReadyEvent.class)public void initIndicesAfterStartup() {        log.info("Mongo InitIndicesAfterStartup init");        var init = System.currentTimeMillis();        var mappingContext = this.mongoConverter.getMappingContext();        if (mappingContext instanceof MongoMappingContext) { MongoMappingContext mongoMappingContext = (MongoMappingContext) mappingContext; for (BasicMongoPersistentEntity<?> persistentEntity : mongoMappingContext.getPersistentEntities()) {     var clazz = persistentEntity.getType();     if (clazz.isAnnotationPresent(document.class)) {         var resolver = new MongoPersistentEntityIndexResolver(mongoMappingContext);         var indexOps = mongoTemplate.indexOps(clazz);         resolver.resolveIndexFor(clazz).forEach(indexOps::ensureIndex);     } }        }        log.info("Mongo InitIndicesAfterStartup take: {}", (System.currentTimeMillis() - init));    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/368409.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号