DispatcherServlet
介绍
DispatcherServlet
是一个Servlet
,在springmvc
中被称为前端控制器,根据请求的路径、类型等进行请求的分发。
HandlerMapping
处理器映射器,是SpringMvc
的核心组件之一,用来根据请求的request
信息查询对应的Handler
,在web
环境中,每个请求都需要一个对应的Handler
来处理,所以当接收到一个请求,需要哪一个Handler
来处理,HandlerMapping
的作用就是找到处理的那个Handler
。
SpringMvc
是基于spring
在web
领域进行开发的框架,使得业务开发者无需关心Servlet
组件的逻辑处理,让业务开发者仅需要关心业务逻辑的处理。
BeanFactoryPostProcessor
是spring
中一个很重要的扩展点,它与BeanPostProcessor
长相类似,触发点略有不同。BeanFactoryPostProcessor
的作用时期是在所有bean
实例化之前。所以它的作用是加载BeanDefinition
。或者可以动态的修改或者是新增BeanDefinition
。
上文中把springbean
的创建过程大致整理了一下,但是似乎还没有回答上文背景中提出的问题,为什么在某个方法上加了一个@Async
注解之后,导致出现了循环依赖报错,而上文中有两个简单小例子,其中使用了AOP
,却没有出现循环依赖报错?(如果对spring
中的AOP
和@Async
实现方式有一个大概了解的话,应该知道二者都是通过生成代理对象的方式实现。)
AOP
面向切面编程。在运行时,动态的将代码织入到类的指定方法,指定位置上的思想。实际上AOP
不一定都像Spring Aop
那样实现,Spring Aop
是通过在运行时生成代理对象来进行织入。还有其他的方式,比如AspectJ
是在编译期、类加载期织入。本篇文章就来介绍,Spring Aop
在运行时生成代理对象的时期和过程。
在一个项目中原来服务端是采用WebService
的进行客户端和服务进行交互,现根据需要调整为直接使用HHTP
方式访问。仅修改访问的方式,其数据的访问结构等不变。