Java 为什么我收到来自hello world SpringBoot的白标错误?

Java 为什么我收到来自hello world SpringBoot的白标错误?,java,spring,spring-mvc,spring-boot,tomcat,Java,Spring,Spring Mvc,Spring Boot,Tomcat,嗨,我正在学习Spring,我不明白为什么我会收到一个白色标签错误 主要类别: package com.hello.springhelloworld; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringHelloWorld

嗨,我正在学习Spring,我不明白为什么我会收到一个白色标签错误

主要类别:

package com.hello.springhelloworld;

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

@SpringBootApplication
public class SpringHelloWorldApplication {

public static void main(String[] args) {
    SpringApplication.run(SpringHelloWorldApplication.class, args);
}

}
HELLOWORLDCLASS:

package web;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class HelloWorldController {

@RequestMapping("/hello")
public String sayHello(@RequestParam(value = "name") String name){
    return  "Hello" + name + "!";
}
}
项目结构:

错误:

Spring boot的组件扫描未扫描控制器类

控制器类应与SpringHelloWorldApplication类位于同一个包中(或子包中)

因此,控制器包声明应为:

package com.hello.springhelloworld.web;


Spring boot的默认组件扫描扫描同一软件包或主应用程序类软件包的子软件包上的组件。

问题是组件扫描不知道您的web软件包

另一种方法是,您可以在主课堂上获得
@ComponentScan(“web”)
的帮助

下面的部分是加法(通读您的代码,并考虑编写此代码)

在您调用
/hello?name=World
之后,如果您希望,它将打印“hello World!”。不,它不会显示,除非您有一个视图,请将此名称命名为“Hello World!”。尝试使用
@RestController
代替
@Controller
。您的邮件将被打印出来


谢谢

谢谢你,兄弟!干杯
package com.hello.springhelloworld;