You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot构建时提示“cannot find symbol: @RestController”及“@RequestMapping”错误的解决求助

Spring Boot构建时提示“cannot find symbol: @RestController”及“@RequestMapping”错误的解决求助

我正在尝试用Spring Boot部署一个极简的API示例,按照官方文档的建议用Gradle来自动化构建任务。

我的核心代码如下:

package webserver.blog;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@RestController
@SpringBootApplication
public class BlogApplication {
    @RequestMapping("/")
    String home() {
        return "Hello, World!";
    }
    public static void main(String[] args) {
        SpringApplication.run(BlogApplication.class, args);
    }
}

不过构建时Java抛出了错误——我提到Gradle只是为了完整说明情况,从错误信息来看应该不是自动化构建工具的问题:

org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the compiler output below.
/home/flak-zoso/IdeaProjects/ics0014/SpringBlog/blog/src/main/java/webserver/blog/BlogApplication.java:7: error: cannot find symbol
@RestController
 ^
  symbol: class RestController
/home/flak-zoso/IdeaProjects/ics0014/SpringBlog/blog/src/main/java/webserver/blog/BlogApplication.java:11: error: cannot find symbol
    @RequestMapping("/")
     ^
  symbol:   class RequestMapping
  location: class BlogApplication
2 errors

    at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:84)

我的build.gradle文件内容如下:

plugins {
    id 'java'
    id 'application'
    id 'org.springframework.boot' version '3.4.2'
    id 'io.spring.dependency-management' version '1.1.7'
}

group = 'webserver'
version = '0.0.1-SNAPSHOT'

java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(17)
    }
}

repositories {
    mavenCentral()
}

application {
    mainClass.set('main.java.webserver.BlogApplication')
}
sourceSets.main.java.srcDirs = ['blog/src']

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework:spring-web'
    implementation 'org.liquibase:liquibase-core'
    implementation 'org.junit.jupiter:junit-jupiter-api:5.5.1'
    testImplementation 'org.springframework.boot.test.context:spring-boot-starter-test'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}

tasks.named('test') {
    useJUnitPlatform()
}

看起来我缺少@RequestMapping和@RestController对应的类,但我已经按照网上的示例和官方文档添加了相关依赖和导入。

抱着试试看的心态,我还尝试添加了更宽泛的导入语句,但错误依然存在:

import org.springframework.boot.*;

另外,根据评论区@Syed的建议,我修改了构建配置,但也没有解决问题:

application {
    mainClass.set('webserver.blog.BlogApplication')
}
sourceSets.main.java.srcDirs = ['blog/src/main/java']

请问我到底缺少了哪个包、依赖或者导入语句?感谢各位的帮助!

备注:内容来源于stack exchange,提问作者FLAK-ZOSO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 03:18:01