当前位置: 首页 > 知识库问答 >
问题:

Spring-MVC:控制器在一个项目中工作,但不在另一个项目中工作(未找到404个)

颛孙飞鸾
2023-03-14

我有以下控制器:

 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 @RestController
 @RequestMapping(value="/")
 public class ToDoController 
 {  
   @GetMapping
   public String print()
   {
     return "Hello";
   }
 }
 import java.util.Collections;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Startup 
{
    public static void main(String[] args) 
    {
        SpringApplication app = new SpringApplication(Startup.class);
        app.setDefaultProperties(Collections
                .singletonMap("server.port", "9005"));
        app.run(args);
    }

我想这意味着一些连接正在工作,但我在网页上得到了一个404错误。

奇怪的是,当我将这两个类复制粘贴到另一个项目(在一个我以前工作过并知道工作的包中)时,代码运行良好。但是,如果在同一个项目中,我创建了一个新的包,并在该包中放置了新的控制器和一个新的启动类,那么控制器也不能工作(404错误)。

我使用eclipse构建了这个项目,并在类路径中包含了所有依赖项,我从来不需要创建web.xml文件,我发现的大多数解决方案都要求您更改该文件。

共有1个答案

淳于功
2023-03-14

StartupTodoController驻留在哪些包中?

如果控制器驻留在不是startup包的“后代”的包中,则默认情况下组件扫描不会将其拾取。您需要使用@springbootapplication.scanbasePackages将Spring指向要扫描的其他包。

 类似资料: