在Spring 2.0.3中无法解析@RestController批注

时间:2018-06-26 16:57:22

标签: java spring maven spring-boot spring-annotations

我正在制作一个新的springboot-maven项目。当我在@RestController以下使用时,编译器无法解析pom.xml

      <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.3.RELEASE</version>
    </parent>

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

但是,当我将版本更改为1.5.13时,编译器可以解析@RestController

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.13.RELEASE</version>
    </parent>

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

我想使用最新版本的Spring Boot,并使用@RestController

3 个答案:

答案 0 :(得分:1)

@RestController不是来自org.springframework.boot:spring-boot-starter-web,而是来自org.springframework:spring-web。不同版本的spring-boot-starter-web可能必须具有某种临时依赖关系来提供它,但是依靠它是一种不好的做法。如果在代码中使用@RestController,则应明确要求提供它的工件:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>5.0.7.RELEASE</version>
</dependency>

答案 1 :(得分:0)

因为我无法添加评论,所以我认为maven配置不是您的问题,请检查@Configuration和@SpringBootApplication类及其路径扫描设置

您可能遇到的另一个问题:也许您的其他依赖项之一仍然取决于springboot 1.5,您必须拥有一个干净的springboot 2.0类路径

我也遇到类似的问题,所以继续学习吧,您会发现它的;-)

答案 2 :(得分:0)

我遇到了类似的问题,这是因为我将类命名为 RestController 。将其重命名为 Controller 后,就可以导入@RestController程序包了。