intellij - spring 未被识别(未映射的 Spring 配置)
Posted
技术标签:
【中文标题】intellij - spring 未被识别(未映射的 Spring 配置)【英文标题】:intellij - spring is not being recognized (Unmapped Spring configuration) 【发布时间】:2014-03-30 14:07:06 【问题描述】:我正在使用 IntelliJ IDEA 并且 Spring 的所有插件都已激活, 但是当我加载我的 Maven 项目时,出现以下错误:
弹簧配置检查 找到未映射的 Spring 配置文件。 请为模块配置/设置 Spring facet
有什么想法阻止它自动配置?
【问题讨论】:
我想在问题中添加更多信息。当此弹出窗口出现时,这意味着 Intellij “怀疑”您在打开项目的模块中有一些文件,理想情况下应该是 SPRING BEANS,您可以向它们提供 spring“上下文”并确认 Intellij 他们确实是您项目中的 Spring bean,因此下次您使用这些文件时,Intellij 可以提供 Spring bean 代码特定建议/代码编辑帮助。如果您忽略此弹出窗口并没有什么坏处,但如果您使用的是丰富的 IDE,为什么要错过很棒的东西。 【参考方案1】:您需要执行以下操作:
-
转到项目结构对话框(通过单击警告或通过文件=>项目结构
选择左侧列表中的模块项
浏览并右键单击缺少文件的模块,然后选择Add=>Spring
在新标签页中点击 + 按钮
您现在应该会看到 xml 文件的列表。选中它们旁边的框
除了消除警告之外,我并不完全清楚这实现了什么!如果有人能对此有所了解,那就太好了。
【讨论】:
一旦配置被映射。我认为,当您从代码中使用 spring bean 时,单击左侧会显示一个图标,该图标会将您带到 XML 中的 bean 定义。同样,当您滚动 throw xml 时,左侧会出现一个图标,该图标将显示该 bean 在不同类中的用法。我正在使用 IntelliJ Ultimate 14 版。 @pshirishreddy 这对我来说似乎有点不完整。我们有多个应用程序上下文用于不同的测试设置【参考方案2】:您需要检查 IntelliJ 将使用哪些配置来提供对有线 bean 的检查。
转到文件➝项目结构➝项目设置➝模块。
选择您的模块并选择(或添加)Spring facet。 在右侧区域,您可以添加或修改模块使用的应用程序上下文。只需在您的上下文中检查您需要的每个配置。
【讨论】:
我应该手动操作吗?我的同事没有遇到同样的问题。他们在导入项目时正在对其进行预配置。我的问题是我在阻止自动配置方面做错了什么 我不知道还有什么其他方法可以手动完成。据我所知,它不会自动应用这些更改。 是的,在导入项目时,您只需要接受点击“配置”链接 下次弹出时会记住这一点:)【参考方案3】:除了上述步骤(在 Bart 的回答中)之外,我还必须
1. click on the unmapped spring beans from the warning dialog box
2. select all the beans file
3. set application context as "Spring Application Context" (You many want to change it to other contexts, if you need)
它对我有用。
【讨论】:
【参考方案4】:如果您只想禁用通知,只需执行以下操作:
IntelliJ > Preferences > Notifications > Spring Configuration Check > No popup
【讨论】:
在哪里可以找到 IntelliJ 版本 14 Ultimate 的此设置? 看起来像 IntelliJ 14,Ultimate 你可以在这里找到它:设置 |外观与行为 |通知 | Spring 配置检查 @atom88 这在 IntelliJ Ultimate 2021.1 中仍然准确【参考方案5】:如果您在 Intellij 中使用 Gradle,请尝试刷新(“重新加载所有 Gradle 项目”)按钮。假设您在 build.gradle 文件中正确定义了依赖项,它应该使 IDE 可以识别所有 Spring 和其他注释。
【讨论】:
【参考方案6】:我只是想为我们的项目添加它(想法 13),查看 File ➝ Project Structure ➝ Project Settings ➝ Modules(Spring)一切看起来都是正确的,但是当您突出显示所有这些并单击编辑铅笔时,我们就可以真正看到它所抱怨的那些。在我们的例子中,它们都在我们的爆炸式战争目录中,所以它们只在完整的初始构建后出现。
【讨论】:
【参考方案7】:与我的团队的情况相同,似乎在全新的 IntelliJ 安装上未检查“自动导入 Maven 项目”(设置/Maven/导入)。
所以检查一下,下次你将在“Maven 项目”窗口中导入一个基于 Spring 的项目 pom.xml 文件,然后右侧会出现一个绿色窗口,等待你的验证触发解析 Spring 配置文件检测到。
希望对你有帮助!
编辑:此时,在其他同事的笔记本电脑上似乎也需要使用 JDK 1.7 而不是 1.8 + 从一个非常简单的全新“空项目”(IntelliJ)开始
【讨论】:
【参考方案8】:许多答案或 6 岁以上,所以这是最新的 2021-06,虽然它们仍然是准确的 AFAIK,但 UI 现在提供了一个指向我将在下一个包含的帮助页面的链接。
使用 IntelliJ Ultimate 2021.1(可能适用于早期版本)时,Show help
链接会将您转到此页面:https://www.jetbrains.com/help/idea/2021.1/spring-support.html#spring-file-set
此页面显示此图像:
这也说:
如果 Spring facet 配置正确,您将看到 Spring gutter 图标标记每个组件、bean 等。
其他答案还提到,如果没有配置,一切仍然有效(这对我来说很好听/读)。
【讨论】:
【参考方案9】:要遵循的步骤
-
转到文件
选择项目结构
从项目设置的左侧,选择模块。
右键单击您的项目,选择 +Add,然后选择 Spring
应用程序、应用程序引导程序和应用程序 MVC 将在那里
【讨论】:
以上是关于intellij - spring 未被识别(未映射的 Spring 配置)的主要内容,如果未能解决你的问题,请参考以下文章
IntelliJ 中的 Gradle Spring Boot 应用程序无法识别 WEB-INF 文件夹中的 Web 资源
powershell 杀死IntelliJ java进程(在IntelliJ中停止Tomcat调试会话时,某些进程未被杀死并保持阻塞端口1099)
powershell 杀死IntelliJ java进程(在IntelliJ中停止Tomcat调试会话时,某些进程未被杀死并保持阻塞端口1099)
使用片段时 Intellij 无法正确识别 Thymeleaf 模型变量