我是Spring-mvc的新手。在我的第一个教程中,我有一个疑问,我们在web.xml中创建了一个 DispatcherServlet 的servlet,并使用 @contorller 注释标记我们的控制器。 然后使用 @Requestmapping 注释我们过滤url以调用函数。
Spring如何在webapp中搜索控制器? 在DispatcherServelet中实际调用哪个函数来创建控制器类的实例? 我的应用程序可以有多个控制器吗?
答案 0 :(得分:2)
Spring如何在webapp中搜索控制器?
Spring容器会扫描通过@ComponentScan
注释指定的所有包(或在xml config中使用component-scan
),并在使用类型为{的构造型注释标记bean类时{1}},Spring容器将创建控制器类的实例(默认为单例范围),并将URL与请求方法类型一起映射(如@Controller
,GET
,POST
等等。)。另一个构造型注释列出here(如PUT
等),容器也为这些类型创建对象。
在DispatcherServelet中实际调用哪个函数来创建 控制器类的实例?
Spring核心容器为所有使用构造型注释的bean创建实例(如上面在容器启动期间所解释的那样)然后
@Service
使用HandlerMapping将网址映射到控制器方法,默认情况下正在使用 Dispatcherservlet
实施,并且当请求到来时,它将被委托给相应的控制器方法,你可以查看here。
我的应用程序中可以有多个控制器吗?
是的,您可以在应用程序中定义多个控制器。在典型的Web应用程序项目中,您会看到许多控制器类,每个控制器类都使用相应的URL进行映射,业务逻辑通过其服务类进行处理。
我建议您参考this来了解弹簧网络流程的工作原理。
答案 1 :(得分:1)
我的应用程序中可以有多个控制器吗?
是的。您可以在应用程序中创建多个控制器。您可以在this发布后了解更多信息。