springboot项目启动,但是访问报404错误的问题

  • Post category:http

关于”springboot项目启动,但是访问报404错误的问题”,这个问题一般是由于项目的配置或代码方面出现问题导致的。以下是解决该问题的完整攻略:

1. 确认项目配置是否正确

在启动项目前,首先需要确认项目的配置文件是否正确,特别是启动端口号是否正确设置,例如默认端口是8080,如果你将启动端口号修改为其他的,则需要确认端口号的正确性。在application.properties或application.yml中,可以按照如下方式设置端口号:

application.properties

server.port=8080

application.yml

server:
  port: 8080

如果端口号没有设置或未正确设置,会引起启动后访问404错误。

2. 确认项目启动时是否出现错误

在项目启动时,可以在控制台中查看是否有错误信息输出,如果出现了错误信息,需要针对问题排查并进行具体修复。

例如,以下是一个SpringBoot启动过程中的异常信息:

***************************
APPLICATION FAILED TO START
***************************

Description:
Field userService in com.example.demo.controller.UserController required a bean of type 'com.example.demo.service.UserService' that could not be found.

The injection point has the following annotations:
        - @org.springframework.beans.factory.annotation.Autowired(required=true)

Action:

Consider defining a bean of type 'com.example.demo.service.UserService' in your configuration.

异常信息指明字段UserService在UserController类中没有找到UserService类型的bean规范,需要根据实际情况进行具体修复。

3. 检查控制器路径是否正确

如果项目启动没有报错,但是在访问时出现404报错,此时需要检查访问的路径是否正确。可能是在访问路径的时候,出现了一些问题,比如访问的时候,URL路径不正确,也可能是在编写控制器代码时出现了问题。

例如,以下是一个简单的SpringBoot控制器类:

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/info/{id}")
    public UserDto findById(@PathVariable("id") Integer id) {
        return userService.findById(id);
    }
}

在访问路径时,应该使用完整的路径,例如http://localhost:8080/user/info/1来访问这个控制器方法。

示例1

一个示例是修改端口号配置中的冒号”:”

这在很多入门Demo中经常出现,因为新手将配置文件中端口号的”:”零时写成了“=”。例如:

server.port=8080:

此时应该将冒号改成常规的等号:

server.port=8080

示例2

另一个示例是在控制器配置上出现问题。如果在代码中,在GetMapping注解上的value比请求的url少了或多了”/”斜线,也会引起该问题。

例如以/content/路径为例:

@RestController
public class ContentController {

    @GetMapping(value = "content")
    public String content() {
        return "this is content.";
    }
}

当访问http://localhost:8080/content时会出现404问题。

为解决这一问题,只需要在对应的路基上添加”/”,即:

@RestController
public class ContentController {

    @GetMapping(value = "/content")
    public String content() {
        return "this is content.";
    }
}

至此,我们对解决”springboot项目启动,但是访问报404错误的问题”的完整攻略已经介绍完毕。