问题描述
当尝试点击spring boot应用程序的rest api端点时,我找不到404,下面是附加的项目结构快照 This is my project structure
控制器-
@RestController
@RequestMapping("/users")
public class UserRestController {
private final UserService userService;
public UserRestController(UserService userService){
this.userService = userService;
}
@RequestMapping(value = "/create",method = RequestMethod.POST,consumes = MediaType.APPLICATION_JSON_VALUE,produces = MediaType.APPLICATION_JSON_VALUE)
public void createuser(@RequestBody final UserDTO user){
userService.saveUser(user);
}
}
解决方法
您不扫描控制器。
在您共享的图像@ComponentScan
中,仅扫描Service
文件夹。但是您的控制器位于RestController
文件夹中。
使用@ComponentScan
,不带任何参数。默认情况下,它将在当前文件夹及其子文件夹中扫描beans
。
例如@ComponentScan()
@SpringBootApplication涵盖了@ EnableAutoConfiguration,@ ComponentScan,@ Configuration。
@RequestMapping(value = "/create",method = RequestMethod.POST,consumes = MediaType.APPLICATION_JSON_VALUE,produces = MediaType.APPLICATION_JSON_VALUE)
为此,您只需执行
@PostMapping(value ="/create"
consumes = MediaType.APPLICATION_JSON_VALUE,produces = MediaType.APPLICATION_JSON_VALUE)
让我们在邮递员中对其进行测试,它应该为POST
,而网址必须为
localhost:<your port>/users/create
。不要忘记在邮递员正文中添加UserDTO。
万一您丢失了它,您的应用程序必须已启动并正在运行。
,重要,请在调用端点表单postman时检查您的HTTP方法类型。该类型必须为“ post”
-
我正在使用Spring Boot。则无需编写@ EnableAutoConfiguration,@ ComponentScan,@ Configuration。 @SpringBootApplication涵盖了所有这些。
-
您只需检查自己的网址,就应该像http:// localhost:8080 / users / create
-
已使用自动接线 @autowired 私人最终UserService用户服务;