springmvc执行流程_Spring MVC介绍之 Annotation解析以及完整的执行流程

点关注,不迷路;持续更新Java相关技术及资讯!!!

公众号:Java大型网站架构(有免费学习资料)

083f47795fb1670cdb86d05553cbc069.png

工作中对于Spring MVC我们最常用的还是使用注解的方式,那么对于注解Spring MVC的如何处理的?

一、annotation-driven

在前面的介绍中,我们知道了HandlerMapping以及HandlerAdapter,那么annotation的是什么?

对于注解:

它对应的handlerMapping则是:

org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping

对应的HandlerAdapter则是:

org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter

对应的Handler则是:

org.springframework.web.method.HandlerMethod

这些没有配置在配置文件中,注解是怎么实现的?

来看下NamespaceHandler接口:

org.springframework.beans.factory.xml.NamespaceHandlerpackage org.springframework.beans.factory.xml;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.springframework.beans.factory.config.BeanDefinition;import org.springframework.beans.factory.config.BeanDefinitionHolder;public interface NamespaceHandler { void init(); BeanDefinition parse(Element element, ParserContext parserContext); BeanDefinitionHolder decorate(Node source, BeanDefinitionHolder definition, ParserContext parserContext);}

实现这个接口,则就可以动态的往ioc容器添加BeanDefinition,则就动态的添加了bean。

那么这个是在哪实现的呢?

来看下spring-webmvc包里面的spring.handlers

orgspringframeworkspring-webmvc4.3.8.RELEASEspring-webmvc-4.3.8.RELEASE.jar!META-INFspring.handlers

里面内容:

http://www.springframework.org/schema/mvc=org.springframework.web.servlet.config.MvcNamespaceHandler

点进去看一下 MvcNamespaceHandler 这个类:

package org.springframework.web.servlet.config;import org.springframework.beans.factory.xml.NamespaceHandlerSupport;public class MvcNamespaceHandler extends NamespaceHandlerSupport { public MvcNamespaceHandler() { } public void init() { this.registerBeanDefinitionParser("annotation-driven
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值