首页 > 解决方案 > 在 Eclipse Spring 首选项中选中“禁用自动配置检测”有什么后果?

问题描述

我的意思是 Window|Preferences|Spring|Beans 下的 Eclipse 首选项支持“禁用自动配置检测”。

如果未选中此选项,我会注意到保存 Java 文件时出现延迟:Building Workspace...

正在加载 ...ServerApplication 或正在加载 ...DaoConfig

这些消息用于位于工作区中的 Spring Boot 主应用程序类 (ServerApplication) 或带有 @ComponentScan (DaoConfig) 的 Spring 配置类。这可能需要几秒钟,这有点烦人。

当我检查上述首选项时,我没有注意到加载这些类的延迟(至少对于 Spring Boot 主类)。

禁用自动配置检测的后果是什么,例如此选项的真正作用是什么,我会失去什么功能?任何指向文档的指针?

我可以在不必禁用自动配置检测的情况下加快保存过程吗?

标签: spring-tools-4

解决方案


在 STS3 中,IDE 创建 Spring 应用程序的内部模型,以便它可以在 Spring Explorer 视图中很好地显示 Spring 元素的概览,在 Spring XML 配置文件中提供内容辅助等等。为了构建这个内部 Spring bean 模型,它需要知道在构建该模型时从哪里开始。您可以在每个项目的属性中手动定义这些入口点:Spring -> Beans Support. 该首选项允许您定义 Spring XML 配置文件和/或 Spring 注释的配置类,供 IDE 在内部使用以构建该模型。

除此之外,还有一种机制可以自动检测这些文件(Spring XML 配置文件和 Spring Boot 应用程序配置注释),因此您无需手动配置它们。但结果是一样的。这些文件/类最终被配置为被 IDE 用来构建这个内部模型。

我猜你看到的延迟来自于构建这个内部 bean 模型——这至少是你提到的消息所表明的。

至此背景。您可以禁用该自动配置机制,而无需手动配置这些文件/类。例如,这将导致 Spring Explorer 不会显示对这些项目有意义的任何内容。

作为替代方案,如果您主要使用 Spring Boot 项目,我强烈建议切换到全新的 Spring Tools 4(也可作为即用型 Eclipse 发行版提供)。它提供了一组略有不同的特性,并以不同的方式实现,因此它不需要昂贵的内部 bean 模型创建。你应该试一试。如果您在 STS3 中遗漏了一些您喜欢但尚未包含在 Spring Tools 4 中的东西,请告诉我们。


推荐阅读