背景

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

图片描述


zhuguowei2
825 声望26 粉丝

引用和评论

0 条评论