背景
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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。