Spring data mongo 基于注解(@Indexed)自动建立索引源码定位

背景

Spring data mongodb Entity 字段有以下定义java

@Indexed(unique=true)
private String uid;

Spring 应用启动的时候会执行createIndexes 以下所示
图片描述spring

想知道是在什么地方执行的createIndexes的?mongodb

定位源码步骤以下

  • 应该会经过反射获取字段的注解 对以下方法加上断点
java.lang.reflect.Field#getAnnotation

而且添加进入断点的条件:ui

annotationClass.getName().contains("org.springframework.data.mongodb.core.index.Indexed")
  • 断点调试定位源码

最终定位到是在以下代码处执行建立索引操做的spa

org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexCreator#createIndex

图片描述

相关文章
相关标签/搜索