本节书摘来自异步社区《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所示。
图2-1 Spring Data STS对衍生查询方法名进行校验
图2-2 对衍生查询方法的属性代码补全提示
Order类中有一些你可能想要引用的属性。假设我们要遍历billingAddress属性,Cmd+Space(或者在Windows中使用Ctrl+Space组合键)将会触发嵌套属性的遍历,这样将会提示出嵌套的属性并根据此时所遍历的属性类型提示所匹配的关键字(如图2-3所示)。因此,String类型的属性将会多一个Like的提示。
图2-3 嵌套属性和关键字提示
为了提供一些锦上添花的特性,Spring Data STS会将Repository作为IDE导航中的一等公民,使其带有众所周知的Spring Bean标识。除此之外,导航中的Spring元素(Spring Elements)节点将会包含一个专有的Spring Data Repositories节点,用来放置应用程序中所配置的所有Repository,如图2-4所示。
图2-4 在STS中,具备Spring Data支持的Eclipse项目资源管理器
可以看到,你能够快速找到Repository接口并跟踪它实际上来源于哪一个配置元素。
2.4.1 Intelli IDEA
最后,启用JPA支持后,IDEA提供了Repository查找方法的补全功能,这种补全涵盖了衍生的属性名以及可用的关键字,如图2-5所示。
图2-5 在IDEA编辑器中,查询方法的补全功能