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

19次阅读

共计 417 个字符,预计需要花费 2 分钟才能阅读完成。

背景
Spring data mongodb Entity 字段有如下定义
@Indexed(unique=true)
private String uid;

Spring 应用启动的时候会执行 createIndexes 如下所示
想知道是在什么地方执行的 createIndexes 的?
定位源码步骤如下
应该会通过反射获取字段的注解 对如下方法加上断点
java.lang.reflect.Field#getAnnotation
并且添加进入断点的条件:
annotationClass.getName().contains(“org.springframework.data.mongodb.core.index.Indexed”)

断点调试定位源码
最终定位到是在如下代码处执行创建索引操作的
org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexCreator#createIndex

正文完
 0