在Web应用程序中搜索控制器

时间:2017-03-29 04:32:27

标签: spring spring-mvc

我是Spring-mvc的新手。在我的第一个教程中,我有一个疑问,我们在web.xml中创建了一个 DispatcherServlet 的servlet,并使用 @contorller 注释标记我们的控制器。 然后使用 @Requestmapping 注释我们过滤url以调用函数。

Spring如何在webapp中搜索控制器? 在DispatcherServelet中实际调用哪个函数来创建控制器类的实例? 我的应用程序可以有多个控制器吗?

2 个答案:

答案 0 :(得分:2)

  

Spring如何在webapp中搜索控制器?

Spring容器会扫描通过@ComponentScan注释指定的所有包(或在xml config中使用component-scan),并在使用类型为{的构造型注释标记bean类时{1}},Spring容器将创建控制器类的实例(默认为单例范围),并将URL与请求方法类型一起映射(如@ControllerGETPOST等等。)。另一个构造型注释列出here(如PUT等),容器也为这些类型创建对象。

  

在DispatcherServelet中实际调用哪个函数来创建   控制器类的实例?

Spring核心容器为所有使用构造型注释的bean创建实例(如上面在容器启动期间所解释的那样)然后 @Service使用HandlerMapping将网址映射到控制器方法,默认情况下正在使用 Dispatcherservlet 实施,并且当请求到来时,它将被委托给相应的控制器方法,你可以查看here

  

我的应用程序中可以有多个控制器吗?

是的,您可以在应用程序中定义多个控制器。在典型的Web应用程序项目中,您会看到许多控制器类,每个控制器类都使用相应的URL进行映射,业务逻辑通过其服务类进行处理。

我建议您参考this来了解弹簧网络流程的工作原理。

答案 1 :(得分:1)

  

我的应用程序中可以有多个控制器吗?

是的。您可以在应用程序中创建多个控制器。您可以在this发布后了解更多信息。