使用Spring的@Autowired注解时,IntelliJ IDEA会显示错误

当我在类中使用Spring的@Autowired注解时,IntelliJ IDEA显示错误,但是类没有任何问题。

这是错误消息:

自动assembly成员必须在有效的spring bean(@ Component / @ Service等)中定义less…(Ctrl + F1)检查bean类中的自动assembly问题。

我有IntelliJ IDEA 13.1.4相同的问题,我通过删除弹簧面(文件 – >项目结构),只是显示“检测”解决了它。

在这里得到同样的错误!

看来Intellij无法validation类实现是@Service还是@Component。

解决它只是从错误更改为警告(按Alt + Enter)。

文件 – >项目结构 – >模块 – > +(在中央列) – >弹簧 – >确定

从您的所有项目模块中删除.iml文件,然后转到文件 – >无效caching/重新启动

如果你知道这个bean存在,并且它只是一个检查问题,那么只需在variables声明前加上以下内容:

 @SuppressWarnings("SpringJavaAutowiringInspection") @Inject MyClass myVariable; 

有时IntelliJ无法parsing,如果一个bean已经声明,例如,当有条件地包含的bean和条件parsing发生在运行时。

确保你的Spring bean定义正确。 有时,应用程序工作正常,它只是在IDE中显示错误,如果您定义了Spring方面,请检查您的项目的“iml”文件。

我有同样的问题。 我通过为每个相关模块添加Spring构面(文件 – >项目结构)来解决此问题,然后添加configuration文件。 对于一些项目(spring mvc),自动检测到的configuration文件。 但是,对于一个jar项目,我不得不手动添加configuration文件。

我遇到了同样的问题。 我的是因为包含自动assembly引用的bean不是Spring组件(它是一个EJB),但是有一个SpringBeanAutowiringInterceptor拦截器允许使用自动assembly。 我认为Intellij在自动assembly检查中不会采取这种可能性。

我也有这个问题。 做alt + 进入 ,然后要求重新运行或禁用弹簧检查在影响线固定它。 这似乎只是在13.4更新之后才成为问题。

这看起来像可见性问题 – 父控制器没有看到您尝试连线的组件。

尝试添加

 @ComponentScan("path to respective Component") 

到父母控制器。

我的是不在我的CrudRepository接口添加@Repository,我正在看的教程没有添加到STS,它没有抱怨。

确保你的IntelliJ Idea(IDE)知道你的模块正在被检查的所有必要的弹簧configuration。

你可以检查下

文件>项目结构>模块> [右侧面板中的项目名称]> Spring

有时候,我们需要明确地告诉IDE Springconfiguration来自一个依赖项(一个存在于你的项目类path中的jar)

你应该检查你是否有@Component,@Repository或类似的类添加

我解决了添加一个Web面。

在我的情况下,我错过了写在web.xml中:

  <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:applicationContext.xml</param-value> </context-param> 

并在应用程序上下文文件中:

 <context:component-scan base-package=[your package name] /> 

添加这个标签并运行maven重build项目后,intellj desapears中的autowired错误和bean图标出现在左边距中: 在这里输入图像说明

 eg1: director:Settings - Editor - Inspections - Spring - Spring Core - Code - Autowiring for Bean Class operate:checkout 勾去掉eg2: 1.impl class add @service like this: @Service public class CityServiceImpl implements CityService{ @Autowired private CityDao cityDao; like this 2.dao file class add @Repository @Repository public interface CityDao {