1.jdk动态代理生成了代理类org.springframework.data.elasticsearch.repository.support.NumberKeyedRepository@31880efa

2. 通过反射拿到自己写的方法 List<Item> findByPriceBetween(double price1,double price2);(在这种会判断方法名是否符合关键字的书写规范,然后代理生成实现方法。关键字书写规范例子如下。)
3. RepositoryFactorySupport 执行 invoke 方法
再调用 ElasticsearchPartQuery 的execute()

4. 执行:ElasticsearchPartQuery 的 elasticsearchOperations.queryForList(query, queryMethod.getEntityInformation().getJavaType());
5. 执行 ElasticsearchTemplate 的 queryForList() -> queryForPage()。

关于为啥要使用动态代理的文章解析:https://www.cnblogs.com/hihtml5/p/6410335.html

本文探讨Spring Data Elasticsearch如何通过动态代理和方法名规则,实现根据`findByPriceBetween`等自定义方法创建Elasticsearch查询的过程。从生成代理类到执行ElasticsearchTemplate的查询操作,揭示了这一机制的详细步骤。
最低0.47元/天 解锁文章
809

被折叠的 条评论
为什么被折叠?



