在Java中restcontroller和controller有什么不同,请用详细代码举例说明
时间: 2023-03-27 22:03:56 浏览: 131
@RestController和@Controller注解的区别1
restcontroller和controller都是Spring MVC框架中的注解,用于处理HTTP请求。它们的主要区别在于返回值的类型和默认的请求映射。
@RestController注解用于标记一个类,表示这个类是一个RESTful风格的控制器,它的方法默认返回JSON/XML等数据格式,而不是视图。同时,它还可以使用@ResponseBody注解来指定某个方法返回的数据类型。
@Controller注解用于标记一个类,表示这个类是一个普通的控制器,它的方法默认返回视图,而不是数据。同时,它还可以使用@RequestMapping注解来指定请求映射。
下面是一个简单的示例代码:
@RestController
@RequestMapping("/api")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users")
public List<User> getUsers() {
return userService.getUsers();
}
}
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/list")
public String list(Model model) {
List<User> users = userService.getUsers();
model.addAttribute("users", users);
return "user/list";
}
}
在上面的代码中,第一个示例使用了@RestController注解,表示这是一个RESTful风格的控制器,它的方法返回的是JSON格式的数据。而第二个示例使用了@Controller注解,表示这是一个普通的控制器,它的方法返回的是视图。
阅读全文