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

Spring Boot修改启动入参为Controller后无法启动web服务无法本地访问

问题根因

  • SpringApplication.run()的第一个入参需要是标注了@SpringBootApplication的主启动类,你传入的HelloWorld只是标注了@RestController的控制器类,不具备启动类的配置能力
  • @SpringBootApplication注解内置了@ComponentScan、@EnableAutoConfiguration等核心注解:
    • 默认会扫描当前注解所在类的同包及子包下的Bean,你传入HelloWorld类时,Spring Boot找不到对应的自动配置类,也不会加载web服务器的相关配置,所以直接抛出无法启动web服务器的异常
    • 当你传入HelloWorldRest1Application.class时,注解生效,会自动扫描到子包com.sw409.HelloWorldRest.services下的HelloWorld控制器,接口可以正常访问

解决方案

直接修改HelloWorldRest1Application类的main方法入参即可,修改后的代码如下:

package com.sw409.demo;

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

@SpringBootApplication
public class HelloWorldRest1Application {

    public static void main(String[] args) {
        // 入参替换为带@SpringBootApplication注解的当前类
        SpringApplication.run(HelloWorldRest1Application.class, args);
    }

}

如果确实想要用HelloWorld类作为启动类,也可以在HelloWorld类上添加@SpringBootApplication注解,同时注意调整组件扫描的包路径覆盖所有需要注入的Bean即可,不推荐这种写法,控制器和启动类职责应该拆分。

内容的提问来源于stack exchange,提问作者user16952888

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:36:01