2017-04-18 65 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){ 
... 
} 
相关问题