[英]@Controller annotation and Controller Classes in Spring MVC
当我使用Spring 3.x使用注释时,我很难知道我们要使用这个@Controller获取哪种类型的Controller类参考
这些是实现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.