测试代码如下 package controller; import org.springframework.web.bind.annotation.*; import java.util.HashMap; @RestController public class Hello { @GetMapping("/hello") public String hello() { return "hello"+nameAge.toString(); } private static HashMap<String,Integer>nameAge=new HashMap<>(); @PostMapping("/hello") public String helloPost(String name,int age) { nameAge.put(name,age); return "add name"+name+",age"+age; } @PutMapping("/hello") public String helloPut(String name,int age) { nameAge.replace(name,age); return "upname"+name+",age"+age; } @DeleteMapping("/hello/{name}") public String helloDel(@PathVariable String name) { nameAge.remove(name); return "del"+name; } }
可以看到监听8081端口已经成功了
但是测试时却显示如下
感觉没错啊,百思不得其解,后来才知道这个问题的原因就是目录结构不正确,导致主应用程序类(Main application class)扫描不到controller类。
默认情况下主应用程序类(Main application class)只会扫描同一包下的Class
这里可以看到我的controller包与 application不在同一个包下
解决方法就是将controller包移动到与application同一个包下
显示成功
参考网站