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

圖片描述

相關文章
相關標籤/搜索