在使用Spring IDE和Spring Tool Suite(STS)这么多年后,我从未理解过一件事。 我正在使用XML配置文件。一个文件(比如“applicationContext.xml”)通过使用:
导入其他XML文件<import resource="classpath:path/to/otherContextFile.xml" />
在我的Eclipse项目属性中,在Spring |下Bean支持,启用“在配置文件中启用对&lt; import /&gt;元素的支持”选项。
在同一项目属性页面中,如果配置文件列表仅包含applicationContext.xml,则STS仍然能够检测otherContextFile.xml的内容并正确解析它。
但是,我看到的是,如果STS执行配置文件的自动检测,它总是会将该列表添加到otherContextFile.xml中。但是将所有导入的配置文件添加到该列表听起来像“启用对配置文件中的&lt; import /&gt;元素的支持”选项对我来说是无用的。由于我希望保持项目设置干净整洁,所以当发生这种情况时,我通常会从该列表中删除导入的文件。
然而,偶尔会触发自动扫描(可能是STS升级或我不知道......)并重新添加这些文件。这让我觉得无论如何都可能是更好的选择......
所以,问题是:什么更正确,更优雅,更高效(从性能的角度来看)?只列出“root”配置文件或所有这些文件(甚至是导入的)?如果答案是后者,那么该选项的内容是什么?“在配置文件中启用对&lt; import /&gt;元素的支持”?
答案 0 :(得分:0)
&#34;在配置文件中启用<import/>
元素支持的主要目的&#34;正是您正在使用它以及您在问题开头所描述的内容。因此,我认为你正在&#34;权利&#34;方式(从STS工具角度来看)。
自动扫描不应将这些导入的文件添加到项目属性中使用的Spring配置文件列表中。它仅针对特定文件执行此操作,例如Spring Boot应用程序主类或Web应用程序中列出的文件。我不知道为什么这些导入的文件每隔一段时间就被添加到该列表中。这可能是一个错误或可能是由于该机制发现这些文件正在其他地方使用而引起的。
我希望能够更详细地看一下,所以如果您可以创建一个小样本应用程序来重现此行为并在https://github.com/spring-projects/spring-ide/issues创建此问题的GitHub问题,那就太棒了。请附上示例项目以及如何重现该问题的几个步骤。
除此之外,你可以禁用&#34;自动扫描&#34;每个项目或整个工作区(以快速摆脱这种行为)。您可以通过项目属性(配置文件列表旁边的第三个选项卡)停用特定的自动配置。 &#34;全球&#34;禁用可以在一般&#34;首选项 - &gt;中激活。春天 - &gt;豆类支持&#34;然后&#34;禁用自动配置检测&#34;。
希望这有帮助!!!