当我在使用Spring3.x的同时使用注解时,我很难知道我们将使用这个@Controller引用获取哪种类型的Controller类
http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/servlet/mvc/Controller.html
这些是实现Controller类
AbstractController
AbstractUrlViewController
MultiActionController
ParameterizableViewController
ServletForwardingController
ServletWrappingController
UrlFilenameViewController
AbstractWizardFormController
SimpleFormController但是,当我们在Spring MVC程序中使用@Controller注解时,如何知道我们的@Controller注解实现了这些控制器中的任何一个?
发布于 2015-04-30 18:14:19
我认为你没有抓住这一点。在过去,要注册控制器,您的类必须实现控制器接口并选择请求映射类型。有时,您必须实现大量代码才能实现单个请求映射。
如今,当我们有注解时,模型已经改变了。我们可以处理每个控制器类的多个请求类型。因为在单个带@Controller注释的类中,我们可以处理许多请求映射。
控制器注解是一个专门的@Component,它告诉Spring在它里面会找到@RequestMapping处理程序。这些处理程序既可以用于返回Json、HTML,也可以用于上传文件。
现在,与相同模块连接的逻辑可以放在单个控制器类下,您可以更灵活地实现您想要实现的功能。其次,@Controller使我们能够显着减少代码数量。
发布于 2015-04-30 18:14:19
您没有使用这些类中的任何一个。您混淆了Controller接口和注释。
注释只是一个标记,它声明您的bean是一个Spring Controller,可以发送一个接收HTTP请求。http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/stereotype/Controller.html
Controller接口是在Java语言中没有注释时引入的。
发布于 2015-04-30 18:38:49
我们将使用这个@Controller来获取哪种类型的控制器类?
@Controller注释用于告诉web容器这是使用@RequestMapping(URI)指定的urls的请求的控制器类。如果使用@Controller注释类,您将不会获取任何类,您只需要在类中提供一个请求处理程序方法并使用@RequestMapping注释它,尽管控制器类也可以使用@RequestMapping注释,在这种情况下,只有类中的方法才能作为请求处理方法工作。
如何知道我们的@Controller注解实现了这些控制器中的任何一个?
您提到的类的名称实现了 Controller接口,而不是@Controller注释实现了.Those控制器类的特定用途,正如它们的名称所暗示的那样。
https://stackoverflow.com/questions/29964748
复制相似问题