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

无法通过url访问我的Spring启动应用程序

朱睿
2023-03-14

我尝试使用本地主机url访问我的endpoint——http://localhost:8080/这是我的Application.java文件

package com.example.MyApplication;

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

@SpringBootApplication
public class MyApplication {

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

}

这是我的终点

@RestController("GetAll")
@RequestMapping("/all")
public class GetAll {
    private final DataService dataService;

    @Autowired
    public GetAll (DataService dataService) {
        this.dataService = dataService;
    }

    @GetMapping
    public List<DataDto> getAll() {
        return dataService.getAll();
    }
}

我试着用这个网址http://localhost:8080/all

{
    "timestamp": "2022-10-06T15:27:18.574+00:00",
    "status": 404,
    "error": "Not Found",
    "path": "/all"
}

共有1个答案

宫修贤
2023-03-14

这种问题可能是由于某些组件(如控制器、服务等)没有被Spring扫描,因为组件和Main类在不同的包中。这里,您的主类在com.example.MyApplication包中。因此,如果您将Spring启动的所有其他组件(如控制器、服务等)放在同一个包或子包中,那么它将按预期工作。如果您想将它们保留在不同的包中,您需要在@ComponentScan注释中提及那些具有Spring组件(如控制器)的不同包。

如果可以将它们保存在同一个包中,请更改GetAll类的包声明:

package com.example.MyApplication;

@RestController("GetAll")
@RequestMapping("/all")
public class GetAll {
    private final DataService dataService;

    @Autowired
    public GetAll (DataService dataService) {
        this.dataService = dataService;
    }

    @GetMapping
    public List<DataDto> getAll() {
        return dataService.getAll();
    }
}

参考:https://www.baeldung.com/spring-component-scanning

 类似资料:
  • 我有一个JUnit测试,它启动了我的spring boot应用程序(Application.java)。 如果我运行JUnit测试,应用程序可以成功启动,但是不能通过url访问 应用程序日志: 当我试图通过url访问应用程序时http://localhost:8080/process该网站称无法访问。

  • 问题内容: 我正在使用Cocoa应用程序进行工作,该应用程序使用具有自定义方案的URL启动/激活,该自定义方案已在Info.plist文件中注册,如下所示: 我的问题是,一旦启动或激活该应用程序,我如何知道启动该应用程序的URL?在iOS上,使用UIApplicationDelegate上的-application:openURL:sourceApplication:annotation:方法很容

  • 在过去的两天里,我正在开发的应用程序在logcat中显示为“死了”,当我试图通过Android Studio中的run按钮启动该应用程序时,一切看起来都很好,只是该应用程序从未启动,并且在Android Studio中没有留下任何错误消息,除了“死了”。知道这是什么吗? 更新:我已经可以从logcat中移除[死亡]的东西了,方法是: 从设备中删除应用程序 重新启动设备(不应该是这样,因为它在发生之

  • 我的Spring启动启动类位于外部罐子中。这个外部jar是这个项目的依赖项。当我试图在IntelliJ中创建Spring Boot的配置时,它说它不能访问这个类。我在pom.xml添加了一个主类的标签,并通过maven Spring Boot插件运行它,一切正常,但它很烦人,因为我需要运行安装的每一个变化。当我通过IntelliJ中的依赖项窗口打开jar时,我可以看到这个类,并有一个运行选项,如果

  • 我的程序编译了所有内容,我没有出错,但我实际上期望tomcat应该永久在端口8080上。输出中也没有Spring。在另一个项目中,我做的一切都很好。谢谢你帮助我。 我的父母: 我的tarter.class: 我的Starter-Pom: 控制台输出: 然后什么都不会发生了。谢谢你的帮助。