Java 为什么即使正确导入也无法解析注释?

Java 为什么即使正确导入也无法解析注释?,java,spring,eclipse,maven,Java,Spring,Eclipse,Maven,我已经成功添加了带有spring依赖项的maven项目。组件注释在使用时会被解析,但自动连线注释会生成错误,尽管它出现在生成路径上。我该如何解决这个问题 第一组件类 import org.springframework.stereotype.Component; @Component public class Comp1 { } import org.springframework.stereotype.Component; //error: The import org.springfr

我已经成功添加了带有spring依赖项的maven项目。组件注释在使用时会被解析,但自动连线注释会生成错误,尽管它出现在生成路径上。我该如何解决这个问题

第一组件类

import org.springframework.stereotype.Component;

@Component
public class Comp1 {
}
import org.springframework.stereotype.Component;
//error: The import org.springframework.beans.factory.annotation.Autowired cannot be resolved
import org.springframework.beans.factory.annotation.Autowired;

@Component
public class Comp2 {
    @Autowired // error: Autowired cannot be resolved to a type
    private Comp1 comp1;

    public Comp1 getComp1() {
        return comp1;
    }
}
第二成分类

import org.springframework.stereotype.Component;

@Component
public class Comp1 {
}
import org.springframework.stereotype.Component;
//error: The import org.springframework.beans.factory.annotation.Autowired cannot be resolved
import org.springframework.beans.factory.annotation.Autowired;

@Component
public class Comp2 {
    @Autowired // error: Autowired cannot be resolved to a type
    private Comp1 comp1;

    public Comp1 getComp1() {
        return comp1;
    }
}
pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>Spr</groupId>
  <artifactId>Spr</artifactId>
  <version>0.0.1-SNAPSHOT</version>

  <dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.0.5.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>5.0.5.RELEASE</version>
    </dependency>
  </dependencies>

</project>

4.0.0
Spr
Spr
0.0.1-快照
org.springframework
spring上下文
5.0.5.1发布
org.springframework
春豆
5.0.5.1发布

添加SpringBeans依赖项,因为Autowire注释是SpringBeans依赖项的一部分:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>your-version</version>
</dependency>

org.springframework
春豆
你的版本
添加这些依赖项

</dependencies>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>5.0.5.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.0.5.RELEASE</version>
</dependency>

org.springframework
春豆
5.0.5.1发布
org.springframework
spring上下文
5.0.5.1发布

删除本地maven存储库文件夹(.m2)并重新下载,解决了问题。

何时发生错误?在构建、测试和运行时?Maven及其作用域依赖项之间的区别可能很重要。在eclipse中编译之前会发生错误。您是否可以检查您的构建路径,支持哪个版本的java您的pom.xml不包含spring beans依赖项,尽管它在文件结构中。。尝试将其添加到pom中。看看会发生什么。注意到您在项目中使用了JRE 1.5-可能与此相关,但它没有帮助。它会自动添加spring上下文。显式添加并不能解决问题。这些依赖项在我的pom文件中不可用,添加后错误消失