2017-04-18 64 views
0

我見過很多例子,其中@Controller註解是在Web應用程序中使用創建Web應用程序生成使用彈簧F/W上。 另外,我已經看到了Spring創建Web應用程序@RestController。 而第三我通常指以創建web應用程序是通過在web.xml中指定彈簧servlet和通過實現控制器接口或通過延伸任一個AbstractController創建控制器類。 這些方法有什麼區別?除了我所提到的之外,還有其他方法嗎?有多少種方法,我們可以在春天

回答

0

@Controller通常用於MVC控制器系統,這可以讓你從控制器內返回模型到您的視圖。

@RestController通常用於REST風格的Web服務,這通常會輸出XML或JSON,您可以使用庫解析POJO或重寫POJO的ToString()方法。

在任何情況下(除非你使用Spring啓動),你通常會仍然使用的web.xml。我更喜歡使用註釋方法(@Controller和/或@RestController),因爲它意味着更少地處理XML文件。

我喜歡,因爲它覺得我不夠靈活和更復雜的不使用你所提到的第三種方法。

+0

我們可以使用註解** Controller **與** RequestMapping **來創建RESTful Web服務嗎? – Ankit

+0

是的,你可以,我一直使用它。 –

0

除了上述答案,我想添加一些@Controller註釋的用例,這可能對您有所幫助。

1)多個URL模式可以通過單一方法處理。

@RequestMapping({"/hello", "/hi", "/greetings"}) 

2)在類和方法級

@Controller 
@RequestMapping("/admin") 
public class AdminController { 


    @RequestMapping("/listUsers") 
    public ModelAndView listUsers() { 

    } 

    @RequestMapping("/saveUser") 
    public ModelAndView saveUser(User user) { 

    } 

    @RequestMapping("/deleteUser") 
    public ModelAndView deleteUser(User user) { 

    } 
} 

注控制器:如果你想使用@Controller而不是@RestController您需要添加註釋@ResponseBody象下面這樣:

@RequestMapping("admin/getVendorDetails") 
    public @ResponseBody <Return Type> getVendorDetails(HttpServletRequest request){ 
... 
} 
相關問題