我正在研究Spring Boot应用程序。按下我配置的URL路径时,出现 404错误。我要去哪里错了?
HomeController.java
val=3234
val=123
val=678
HomeApplication.java
package com.example.homes;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController("/add")
public class HomeController {
@GetMapping("/hello")
public String add() {
return "Hello";
}
}
答案 0 :(得分:1)
您缺少/add
的RequestMapping。您保留为@RestController
属性。它应该是@RequestMapping("/add")
。在您当前的代码中,hello
被映射到root。
尝试localhost:8080/hello
,它将起作用。
如果需要localhost:8080/add/hello
然后应如下所示:
@RestController
@RequestMapping("/add")
public class HomeController {
@GetMapping(value = "/hello")
public String add() {
return "Hello";
}
}
答案 1 :(得分:1)
@RestController 是@Controller
的专用版本,它会自动添加@Controller
和@ResponseBody
注释。因此我们不必在我们的映射方法中添加@ResponseBody
。
@RequestMapping 将HTTP请求映射到MVC和REST控制器的处理程序方法。
这里可能是@RestController("/add")
的嫌疑人,应该是@RequestMapping("/add")
@Class级别的RequestMapping
@RestController
@RequestMapping("/add")
public class HomeController {
//localhost:8080/add/hello (No Context Path in application.properties)
@GetMapping("/hello")
public String add() {
return "Hello";
}
}
@方法级别的@RequestMapping
@RestController
public class HomeController {
//localhost:8080/hello (No Context Path in application.properties)
@GetMapping("/hello")
public String add() {
return "Hello";
}
}
如果您在application.properties
中没有定义任何上下文路径,请致电
localhost:8080/add/hello
将提供所需的输出
如果您的上下文路径为 app ,则调用localhost:8080/app/add/hello
答案 2 :(得分:1)
执行此操作,而不是执行@RestController("/add")
@RestController
@RequestMapping("/add")
那么您应该可以致电localhost:8080/<ApplicationContext>/add/hello