错误原因:controller上类的注解使用了@controller而不是@restcontroller!
于是上网搜了搜两者的用法:
@Controller 和 @RestController 是 Spring 框架中用于处理 HTTP 请求的注解,它们的主要区别在于返回值类型和用途:
@Controller 通常用于创建传统的 Spring MVC 控制器,它处理 HTTP 请求并返回视图或模型。
控制器中的方法通常返回视图名称(字符串),这意味着它们返回的是视图的逻辑名称,Spring MVC 会根据逻辑名称查找和渲染对应的视图。
这是适用于传统的基于视图的 Web 应用程序的情况,其中视图层和业务逻辑层是分离的。
@RestController 是 @Controller 的一个特殊形式,通常用于创建 RESTful Web 服务。
控制器中的方法返回的是数据对象(如 JSON 或 XML),而不是视图名称。Spring 自动将这些数据对象序列化为响应主体并发送给客户端。
这适用于构建 Web 服务、API 或前后端分离的应用,客户端(通常是 JavaScript 或移动应用)通过 HTTP 请求获取数据。