Junior
RestController və Controller arasında fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
@Controller veb sorğularını işləmək üçün istifadə olunur və görünüş adlarını (.jsp, .html və s.) qaytarır. O, MVC memarlığında tez-tez istifadə olunur və məlumat modeliylə qarşılıqlı əlaqə və göstəriləcək görünüşün seçilməsi üçün məsuliyyət daşıyır.
@RestController @Controller-ın ixtisaslaşdırılmış versiyasıdır. O, metodların geri qaytardığı dəyərləri avtomatik olaraq HTTP cavab formatına, adətən JSON və ya XML-ə çevirir. Bu, @ResponseBody-nin hər bir metodda avtomatik daxil edilməsi ilə mümkün olur. @RestController daha çox RESTful veb xidmətləri yaratmaq üçün istifadə olunur, hansı ki, xam məlumatlar təqdim edir və HTML səhifələri qaytarmır.
| Xüsusiyyət | @Controller |
@RestController |
|---|---|---|
| Məqsəd | Veb sorğularını işləmək, görünüşləri qaytarmaq | RESTful veb xidmətləri yaratmaq, məlumatları (JSON, XML) qaytarmaq |
@ResponseBody |
Hər metod üçün açıq şəkildə istifadə tələb edir | Avtomatik olaraq bütün metodlara tətbiq olunur |
| Qaytarma tipi | Görünüş adı (String), ModelAndView | Məlumatlar (obyektlər, siyahılar və s.), avtomatik serializasiya olunur |
Nümunə:
@Controller:
// `@Controller` istifadə nümunəsi
@Controller
@RequestMapping("/view")
public class ViewController {
@GetMapping("/hello")
public String sayHello() {
return "hello"; // Görünüş adını qaytarır (məsələn, hello.jsp)
}
}
@RestController:
// `@RestController` istifadə nümunəsi
@RestController
@RequestMapping("/api")
public class ApiController {
@GetMapping("/user")
public User getUser() {
// User sinfi mövcuddur deyə düşünürük
return new User("John Doe", 30); // JSON formatında User obyektinin nümayişi
}
}