无法导入 Spring RepositoryRestResource

Posted

技术标签:

【中文标题】无法导入 Spring RepositoryRestResource【英文标题】:Unable to import Spring RepositoryRestResource 【发布时间】:2015-09-25 06:27:05 【问题描述】:

我正在尝试通过 Spring 实现基于 REST 的 MongoDB 服务,但遇到了一些麻烦。我无法导入某个库。

我班上有这个:

package main;

import java.util.List;

import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;

@RepositoryRestResource(collectionResourceRel = "people", path = "people")
public interface PersonRepository extends MongoRepository<Person, String> 

    List<Person> findByLastName(@Param("name") String name);


但是import org.springframework.data.rest.core.annotation.RepositoryRestResource; 由于某种原因无法正常工作并给我错误:The import org.springframework.data.rest cannot be resolved

这是我的 maven 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>UserRegistrationServices</groupId>
    <artifactId>UserRegistrationServices</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

    <!-- Inherit defaults from Spring Boot -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.2.5.RELEASE</version>
    </parent>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <!-- Get the dependencies of a web application -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-rest</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <!-- Spring Boot Maven Support -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

另外,我直接关注本指南:http://spring.io/guides/gs/accessing-mongodb-data-rest/

如何解决?谢谢

【问题讨论】:

你用的是什么IDE? 【参考方案1】:

编辑您的 pom.xml.... 并将这些行添加到 &lt;dependencies&gt;&lt;/dependencies&gt;...

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-rest</artifactId>
        <version>1.2.5.RELEASE</version>
</dependency>

【讨论】:

现在不是2.1.8,而是2.1.0 &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-starter-data-rest&lt;/artifactId&gt; &lt;version&gt;2.1.0.RELEASE&lt;/version&gt; &lt;/dependency&gt;【参考方案2】:

我在1.3.6.RELEASE 上遇到了同样的问题。

它说,

org.springframework.data.rest.core.annotation.RepositoryRestResource 无法解析为类型

于是我将spring-boot的版本设置为1.2.8.RELEAS,现在我解决了。

下面是我当前spring-boot的pom.xml。

....

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.2.8.RELEASE</version>
    <relativePath /> <!-- lookup parent from repository -->
</parent>

....

【讨论】:

【参考方案3】:

我对这个错误消息有同样的问题。在我的情况下是导致 IDE(Intellij)中的刷新问题。 删除带有注释的行 (@RepositoryRestResource) 并重新插入它很有帮助。

【讨论】:

【参考方案4】:

我也曾尝试从https://spring.io/guides/gs/accessing-mongodb-data-rest/ 关注相同的内容 对我来说,这个问题在我添加了https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-rest/2.3.0.RELEASE 的版本后得到了解决 为了更准确和清楚,我在 pom.xml 文件中添加了这个来解决这个问题。也许如果您添加版本,它将开始工作!

    <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-rest -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-rest</artifactId>
    <version>2.3.0.RELEASE</version>
</dependency>

【讨论】:

以上是关于无法导入 Spring RepositoryRestResource的主要内容,如果未能解决你的问题,请参考以下文章

我无法在 Spring 项目中使用和导入 ApplicationContext

为啥myeclipse无法自动导入spring的jar包?

Spring Boot 注释和导入无法在 Intellij IDE 上解析

无法处理配置类 Spring Cloud Gateway 的导入候选

即使文件在路径中,也无法从 URL 位置 [classpath:spring/spring-persistence-layer.xml] 导入 bean 定义

无法将Spring Boot依赖项从父模块导入子模块