迈向Spring Tools 5 – 原型与新的结构视图
在Spring项目中工作时,开发者的思考维度并不仅限于类和接口这类底层概念。在使用Spring时,你会关注更高级别的抽象和概念,例如服务、存储库、配置类、实体、聚合根等。为了让开发者在他们的编码环境中将这些概念置于核心位置,Spring Tools会从Spring的视角分析你的源代码,并基于这些概念提供概览和快速导航功能——我们这样做已经很久了。
过去,我们使用“转到符号”功能来实现这一点。Spring Tools通过分析源代码并提取必要信息,为这些Spring概念创建了专门的符号。例如,这会创建出诸如 /greeting – GET 这样的请求映射符号——对于bean、存储库等也是如此。在IDE中拥有这些符号非常方便。如果运用得当,它们可以让你快速浏览项目,快速搜索,并提供一个关于所有请求映射(以此为例)的清晰概览。
原型和项目的逻辑视图
虽然这些Spring特有的符号在Spring Tools中依然存在,但新的主要版本将其提升到了一个全新的高度。通过与Spring Modulith和jMolecules项目的合作,我们深入集成了jMolecules 2.0引入的原型概念,以一种独特且不同的方式可视化Spring项目:逻辑结构视图。
jMolecules和Spring Modulith中这些原型基础的作者和创建者Oliver Drotbohm,在一篇详尽的博客文章中很好地介绍了这个概念。
逻辑结构视图建立在此基础之上,为你提供整个项目的以原型为中心的视角。它不显示文件和文件夹,而是显示项目的元素,并按它们的原型进行分组。你可以看到Web控制器被分组在一起,还有配置类、请求映射、存储库和实体——这些正是你在处理Spring项目时通常关注的那些高级概念。
逻辑结构视图还允许你控制希望在树状结构中作为独立组显示哪些原型。在视图中的项目节点旁边,你可以调用操作来选择希望为每个项目考虑的组。这样,例如,你可以决定是否要在树中将来自Spring Web的原型显示为单独的区块。这为你提供了极大的灵活性和对结构视图的控制,让你可以根据自己的需求精确定制视图。
顶层的模块结构(通过Spring Modulith)
如果项目使用最新版本的Spring Modulith来定义其内部架构和结构,Spring Tools中的逻辑结构视图会自动考虑这一点。它不仅按原型对项目元素进行分组,还按项目的模块化结构进行分组。
自定义原型
另一个绝妙之处是你可以定义自己的原型。你需要做的就是创建一个相应的 META-INF/jmolecules-stereotypes.json 文件,填写定义,然后将该文件添加到你的项目中。或者,你可以使用jMolecules的 @Stereotype 注解来定义你自己的原型注解或接口,并在整个项目中使用它们。
Spring Tools内部的逻辑将自动拾取这些定义,无论它们是定义在元数据文件中还是源代码中。它们将与你项目依赖项中检测到的所有其他原型一起,显示在逻辑结构视图中。这使你能够在不更改或配置IDE本身的情况下,定制IDE内项目的结构视图。
展望未来
如果你想尝试Spring Tools 5的最新候选版本,请访问工具预览页面,或在Visual Studio Code中切换到扩展的预发布版本。
本系列关于Spring Tools 5发布的第三部分将探讨与AI编码助手的新集成,随后是Spring Tools 5的正式发布。敬请期待。