《Spring Data实战》——2.4 IDE集成

简介: 在3.0版本中,Spring工具套件(Spring Tool Suite,STS)提供了与Spring Data Repository抽象进行集成的功能。STS为Spring Data所提供的核心支持是查找方法的查询衍生机制。

本节书摘来自异步社区《Spring Data实战》一书中的第2章,第2.4节,作者: 【美】Mark Pollack , Oliver Gierke , Thomas Risberg , Jon Brisbin , Michael Hunger著,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.4 IDE集成

在3.0版本中,Spring工具套件(Spring Tool Suite,STS)提供了与Spring Data Repository抽象进行集成的功能。STS为Spring Data所提供的核心支持是查找方法的查询衍生机制。它所能做到的第一件事就是在IDE中校验衍生查询方法的正确性,这样,不需要启动ApplicationContext就能立刻探测出方法名中引入的拼写错误。

如图2-1所示,IDE检测到Descrption是非法的,因为Product类中并没有这样的属性。为了发现这些拼写错误,它会分析Product领域类(这些事情在启动Spring Data Repository时也会做)来获取属性并将方法名解析为属性的遍历树。为了尽早避免这种类型的拼写错误,STS的Spring Data辅助功能为属性名、条件关键字(criteria keyword)以及像And和Or这样的连接符提供了代码补全功能,如图2-2所示。

screenshot

图2-1 Spring Data STS对衍生查询方法名进行校验

screenshot

图2-2 对衍生查询方法的属性代码补全提示

Order类中有一些你可能想要引用的属性。假设我们要遍历billingAddress属性,Cmd+Space(或者在Windows中使用Ctrl+Space组合键)将会触发嵌套属性的遍历,这样将会提示出嵌套的属性并根据此时所遍历的属性类型提示所匹配的关键字(如图2-3所示)。因此,String类型的属性将会多一个Like的提示。

screenshot

图2-3 嵌套属性和关键字提示

为了提供一些锦上添花的特性,Spring Data STS会将Repository作为IDE导航中的一等公民,使其带有众所周知的Spring Bean标识。除此之外,导航中的Spring元素(Spring Elements)节点将会包含一个专有的Spring Data Repositories节点,用来放置应用程序中所配置的所有Repository,如图2-4所示。

screenshot

图2-4 在STS中,具备Spring Data支持的Eclipse项目资源管理器

可以看到,你能够快速找到Repository接口并跟踪它实际上来源于哪一个配置元素。

2.4.1 Intelli IDEA
最后,启用JPA支持后,IDEA提供了Repository查找方法的补全功能,这种补全涵盖了衍生的属性名以及可用的关键字,如图2-5所示。

screenshot

图2-5 在IDEA编辑器中,查询方法的补全功能

相关文章
|
5天前
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
26 2
ClickHouse与大数据生态集成:Spark & Flink 实战
|
1月前
|
Java Maven Docker
gitlab-ci 集成 k3s 部署spring boot 应用
gitlab-ci 集成 k3s 部署spring boot 应用
|
3月前
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
定时任务在企业应用中至关重要,常用于异步数据处理、自动化运维等场景。在单体应用中,利用Java的`java.util.Timer`或Spring的`@Scheduled`即可轻松实现。然而,进入微服务架构后,任务可能因多节点并发执行而重复。Spring Cloud Alibaba为此发布了Scheduling模块,提供轻量级、高可用的分布式定时任务解决方案,支持防重复执行、分片运行等功能,并可通过`spring-cloud-starter-alibaba-schedulerx`快速集成。用户可选择基于阿里云SchedulerX托管服务或采用本地开源方案(如ShedLock)
111 1
|
27天前
|
存储 Java API
如何使用 Java 记录简化 Spring Data 中的数据实体
如何使用 Java 记录简化 Spring Data 中的数据实体
33 9
|
23天前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
45 1
|
1月前
|
存储 前端开发 Java
Spring Boot 集成 MinIO 与 KKFile 实现文件预览功能
本文详细介绍如何在Spring Boot项目中集成MinIO对象存储系统与KKFileView文件预览工具,实现文件上传及在线预览功能。首先搭建MinIO服务器,并在Spring Boot中配置MinIO SDK进行文件管理;接着通过KKFileView提供文件预览服务,最终实现文档管理系统的高效文件处理能力。
206 11
|
19天前
|
Dart Android开发
鸿蒙Flutter实战:03-鸿蒙Flutter开发中集成Webview
本文介绍了在OpenHarmony平台上集成WebView的两种方法:一是使用第三方库`flutter_inappwebview`,通过配置pubspec.lock文件实现;二是编写原生ArkTS代码,自定义PlatformView,涉及创建入口能力、注册视图工厂、处理方法调用及页面构建等步骤。
36 0
|
2月前
|
监控 关系型数据库 MySQL
zabbix agent集成percona监控MySQL的插件实战案例
这篇文章是关于如何使用Percona监控插件集成Zabbix agent来监控MySQL的实战案例。
47 2
zabbix agent集成percona监控MySQL的插件实战案例
|
23天前
|
Java Spring
springboot 学习十一:Spring Boot 优雅的集成 Lombok
这篇文章是关于如何在Spring Boot项目中集成Lombok,以简化JavaBean的编写,避免冗余代码,并提供了相关的配置步骤和常用注解的介绍。
74 0
|
2月前
|
Java 数据库连接 API
【Java笔记+踩坑】Spring Data JPA
从常用注解、实体类和各层编写方法入手,详细介绍JPA框架在增删改查等方面的基本用法,以及填充用户名日期、分页查询等高级用法。
【Java笔记+踩坑】Spring Data JPA