@RestController和@Controller是Spring框架中常用的两个注解,用来标识一个类是Spring MVC控制器。它们在实际应用中有着不同的用途和工作机制,下面我将从实际应用案例、源码解析和区别对比等方面对这两个注解进行分析。
一、实际应用案例:
- @RestController: @RestController是Spring4之后新增的一个注解,它相当于@Controller和@ResponseBody的结合体。使用@RestController注解的类会直接返回数据,一般用于构建RESTful风格的API接口。在使用@RestController注解的类中,方法默认会以JSON格式返回数据,而不是视图。
举个例子,我们可以编写一个UserController:
@RestController
@RequestMapping("/user")
public class UserController {@GetMapping("/info")public User getUserInfo() {User user = new User();user.setId(1);user.setName("Alice");return user;}
}
- @Controller: @Controller是Spring MVC中最常用的注解之一,用来标识一个类是Spring MVC控制器。一般来说,使用@Controller注解的类中的方法会返回一个视图,比如HTML页面。@Contr