开发者社区> 问答> 正文

Spring Boot Rest控制器端点不起作用

使用创建一个简单的Spring Boot应用程序Maven。我给了带RestController注释的值,但它不起作用。如果我不使用RestController的值,它将起作用。我想知道,为什么它不起作用,价值的用途是@RestController什么?

http://localhost:9090/app/hello 这给出了错误

http://localhost:9090/hello 这很好

@RestController("/app")批注中"/app"此值的目的是什么@RestController?

PS:我知道,我可以@RequestMapping("/app")在ScraperResource类上使用。

@SpringBootApplication
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}
@RestController("/app")
public class ScraperResource {
    @GetMapping("hello")
    public String testController() {
        return "Hello";
    }
}

application.properties

server.port=9090

问题来源:Stack Overflow

展开
收起
montos 2020-03-23 19:13:35 643 0
1 条回答
写回答
取消 提交回答
  • 这是因为RestController内部的“ / app” 与URL映射无关,而是与Spring内部使用的“逻辑组件”名称无关。

    如果要为所有控制器方法添加/ app前缀(或不添加它),则应改用此方法。

    @RestController
    @RequestMapping("/app")
    public class ScraperResource {
    
        @GetMapping("hello")
        public String testController() {
            return "Hello";
        }
    }
    

    没有@RestController,Spring不会知道此类应处理HTTP调用,因此它是必需的注释。

    回答来源:Stack Overflow

    2020-03-23 19:13:55
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载

相关实验场景

更多