@Controller
和 @RestController
是 Spring 框架中用于标识控制器类的注解,它们用于定义 Web 应用的端点(endpoints)。这两个注解的主要区别在于它们处理 HTTP 请求的方式。
@Controller
和 @ResponseBody
的组合。它用于构建 RESTful Web 服务,直接将返回的对象序列化为 HTTP 响应体,通常返回 JSON 或 XML 格式的数据。@ResponseBody
注解。@Controller
public class MyViewController {
@RequestMapping("/hello")
public String sayHello(Model model) {
model.addAttribute("message", "Hello, World!");
return "hello"; // 返回视图名称
}
}
@RestController
@RequestMapping("/api")
public class MyApiController {
@GetMapping("/hello")
public Map<String, String> sayHello() {
Map<String, String> response = new HashMap<>();
response.put("message", "Hello, World!");
return response; // 直接返回 JSON 数据
}
}
@Controller
和 @RestController
?原因:
解决方法:
@Controller
和 @RestController
,但通常建议将它们分开以保持代码的清晰和可维护性。通过理解这些基础概念和应用场景,你可以更有效地设计和实现 Spring 应用中的控制器层。
领取专属 10元无门槛券
手把手带您无忧上云