模糊的概念(四)

spring的相关的理解,其实网上面有非常多的介绍,但是看着都挺容易理解,但是在和别人说的时候,总觉得不到位,还是没有能够罢相关联的东西弄明白,没有把知识变为自己的东西。

当使用一个工程,一个具体的工程练习一下。

例如spring mvc中的请求处理过程:在spring in action 中是这样描述的:

image

首先是DispatcherServlet 这个在web.xml 中配置的前端控制器servlet,前端控制器是web应用程序常见的模式,它将请求请求委托给应用程序的其他组件来执行实际的处理。

下面这些是对上面的这个图形,进行了进一步的说明:

image

image

我们还需要知道,DispatcherServlet 是怎么找到合适的Controller的,这样的话,在请求的时候如果加一个过滤器或者其他的什么的东西,或者中间增加逻辑处理是否合适就取决了你对这个过程的了解了。

找到controller是通过URL 和 controller之间的映射来找到对应的controller,spring提供了这种映射的机制,术语称之为映射器。并且还有很多种,例如:

image

image

可以自己根据情况来自行的配置:

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
      <property name="mappings">
         <props>
           <prop key="/**/help.do">helpAction</prop>
           <prop key="/ex/view*.do">helpAction</prop>
           <prop key="/*/account.do">accountAction</prop>
           <prop key="/*/editAccount.do">accountAction</prop>
         </props>
       </property>
</bean>

prop里面的内容,对应的是bean的ID。

如果没有定义的映射器的bean,DispacherServlet将创建并使用BeanNameUrlHandlerMapping 和

DefaultAnnotationHandlerMapping ,很明显后面的这个映射器是针对使用注解的情况。

spring mvc中uml请求的过程大致的就是这么一个过程。

原文地址:https://www.cnblogs.com/zhailzh/p/4166143.html