繁体   English   中英

Spring MVC中的@Controller注释和控制器类

[英]@Controller annotation and Controller Classes in Spring MVC

当我使用Spring 3.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注释正在实现这些控制器中的任何一个,请有人解释我

我想你在这里忽略了这一点。 在过去注册控制器的过程中,您的类必须已实现控制器接口并选择请求映射类型。 有时您必须实现大量代码才能实现单个请求映射。

如今,当我们有注释时,模型已经改变了。 我们可以为每个控制器类处理多个请求类型。 因为在单个@Controller注释类中,我们可以处理许多请求映射。

Controller注释是一个专门的@Component ,它告诉Spring它内部会找到@RequestMapping处理程序。 这些处理程序可用于返回Json,HTML或上传文件。

现在,与同一模块连接的逻辑可以放在单个控制器类下,您可以更灵活地实现所需的功能。 其次, @Controller使我们能够显着减少代码量。

你没有使用任何这些课程。 您将Controller接口与注释混淆。

注释只是一个标记,表明您的bean是一个Spring Controller并且可以发送接收HTTP请求。 http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/stereotype/Controller.html

当Java语言中没有注释时,引入了Controller接口。

我们要使用这个@Controller获取哪种类型的Controller类?

@Controller注释是告诉Web容器这是带有@RequestMapping(URI)指定的URL的请求的控制器类。 如果你用@Controller注释你的类,你将不会获取任何类,你只需要在类中提供一个请求处理程序方法并使用@RequestMapping注释它,尽管控制器类也可以用@RequestMapping注释,并且case,只有类中的方法才能作为请求处理程序方法。

如何知道我们的@Controller注释正在实现这些控制器中的任何一个?

你提到的类的名称是实现 Controller接口,而不是@Controller注释正在实现任何东西。这些控制器类是出于特定目的,正如它们的名字所暗示的那样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM