SimpleJdbcRespository 实例化了我的存储库接口的方式和位置?

How and Where was the my repository interface instanced by SimpleJdbcRespository?

我创建了一个由 CrudRepository 扩展的自定义存储库界面。 我刚刚在 StartApplication.

中使用了 @EnableJdbcRepositories

当我测试自定义存储库中的方法时,例如 save(T t) 我看到它被 SimpleJdbcRespository.class 实例化了。

我对此很感兴趣,我想知道 SimpleJdbcRespository 是如何以及在何处创建并实现了我的自定义存储库界面。

我应该调试哪一行代码?

所有 Spring 数据 JDBC 存储库由 JdbcRepositoryFactory 创建,它使用 SimpleJdbcRepository 作为 CrudRepository 方法的实现。

对于存储库接口中的其他方法,请参考 JdbcQueryLookupStrategy,它确定如何获取正确的方法查询以 RepositoryQuery.

的形式执行

目前只有一个实现:JdbcRepositoryQuery

如果在执行这种方法时某些东西没有按预期工作。 JdbcRepositoryQuery.execute(Object[] objects) 是调试的良好开端。 您可能还想查看其中使用的 executor 是如何构建的。