spring MVC框架的工作机制

来源:互联网 发布:23333什么意思网络用语 编辑:程序博客网 时间:2024/06/06 06:56

1、DispatcherServlet框架如何截获特定的HTTP请求,交由Spring MVC框架处理?

web.xml配置如下:<!-- 配置Spring核心控制器 -->    <servlet>        <servlet-name>dispatcher</servlet-name>        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>        <init-param>            <param-name>contextConfigLocation</param-name>            <param-value>/WEB-INF/dispatcher.xml</param-value>        </init-param>        <load-on-startup>1</load-on-startup>    </servlet>        <servlet-mapping>        <servlet-name>dispatcher</servlet-name>        <url-pattern>/rest/*</url-pattern>    </servlet-mapping>
由上图知,通过<servlet-mapping>指定DispatcherServlet处理所有URL以/rest/开头的HTTP请求,即以/rest/开头的请求都会被DispatcherServlet截获并处理。

2、位于Web层的Spring容器(WebApplicationContext),如何与位于业务层的Spring容器(ApplicationContext)建立联系,以使Web层的Bean可以调用业务层的Bean?

由于“Web”层的Spring容器作为“业务层”Spring容器,所以“Web”层的Spring容器可以引用“业务层”Spring容器的Bean,而“业务层”Spring容器却访问不到“Web”层的Spring容器的bean。

3、如何初始化Spring MVC的各个组件,并将他们装配到DispatcherServlet中?

protected void initStrategies(ApplicationContext context){initMultipartResolver();//@初始化上传文件解析器(直译为多部分请求解析器)initLocaleResolver();//@初始化本地化解析器initThemeResolver();//@初始化主题解析器initHandlerMapping();//@初始化处理器映射器 initHandlerAdapters();//@初始化处理器适配器initHandlerExceptionResolvers();//@初始化处理器异常解析器initRequestToViewNameTranslator();//@初始化请求到视图名翻译器initViewResolvers();//@初始化视图解析器}

initStrategies()方法将在WebApplicationContext初始化后自动执行,此时Spring上下文中的bean已初始化完毕,该方法的工作是通过反射机制查找并装配Spring容器中的用户显式自定义的组件bean,如果找不到再装配默认的组件实例。

0 0
原创粉丝点击