关于”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错误的问题”的完整攻略已经介绍完毕。