当我使用Spring 3.x时 在使用注释时,我很难知道我们要使用这个@Controller获取哪种类型的Controller类 参考
这些正在实现Controller类
AbstractController
AbstractUrlViewController
MultiActionController
ParameterizableViewController
ServletForwardingController
ServletWrappingController
UrlFilenameViewController
AbstractWizardFormController
SimpleFormController
但是当我们在Spring MVC中使用@Controller注释时 程序如何知道我们的@Controller注释正在实现 任何这些控制器,请任何人解释我
答案 0 :(得分:3)
我认为你在这里忽略了这一点。在过去注册控制器的过程中,您的类必须已实现控制器接口并选择请求映射类型。有时您必须实现大量代码才能实现单个请求映射。
如今,当我们有注释时,模型已经改变了。我们可以为每个控制器类处理多个请求类型。因为在单个@Controller
带注释的类中,我们可以处理许多请求映射。
Controller注释是一个专门的@Component
,它告诉Spring它内部会找到@RequestMapping
个处理程序。这些处理程序可用于返回Json,HTML或上传文件。
现在与同一模块连接的逻辑可以放在单个控制器类下,您可以更灵活地实现所需。其次@Controller
使我们能够显着减少代码。
答案 1 :(得分:2)
您没有使用任何这些课程。您将Controller
接口与注释混淆。
注释只是一个标记,表明您的bean是一个Spring Controller并且可以发送接收HTTP请求。 http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/stereotype/Controller.html
当Java语言中没有注释时,引入了Controller
接口。
答案 2 :(得分:2)
我们要使用它来获取哪种类型的Controller类 @Controller?
@Controller
注释是告诉Web容器这是带有@RequestMapping(URI)
指定的URL的请求的控制器类。如果你使用@Controller
注释你的类,你将不会获取任何类,你只需要在类中提供一个请求处理程序方法并使用@RequestMapping
注释它,尽管控制器类也可以注释使用@RequestMapping
,在这种情况下,只有类中的方法才能作为请求处理程序方法。
如何知道我们的@Controller注释正在实现任何一个 这些控制器?
您提到的类的名称正在实现 Controller
接口,而不是@Controller
注释正在实现任何内容。这些控制器类用于特定目的,因为它们的名称建议。