Spring mvc注解配置的背后
来源:互联网 发布:linux sleep 1s 编辑:程序博客网 时间:2024/06/04 01:06
在Spring3中已经可以用@Configuration标识一个类代替xml来配置bean容器,该类中所用标识有@Bean注解的方法都会发布成一个bean,在spring mvc框架中也提供了注解的配置的方式,即@EnableWebMvc,这篇文章试图讨论下@EnableWebMvc这个注解背后干了什么。
大家都知道spring mvc容器很灵活,处理请求的各个模块都是隔离的,很方便定制化,当你使用@EnableWebMvc来配置spring mvc时,会把WebMvcConfigurationSupport当成配置文件来用,将其中所有标识有@Bean注解的方法配置成bean,这就成了Spring mvc的默认配置(了解Spring mvc的人应该都知道下面bean的作用):
HandlerMapping:
- Bean: requestMappingHandlerMapping
- Bean: viewControllerHandlerMapping
- Bean: beanNameHandlerMapping
- Bean: resourceHandlerMapping
- Bean: defaultServletHandlerMapping
HandlerAdapter:
- Bean: requestMappingHandlerAdapter
- Bean: httpRequestHandlerAdapter
- Bean: simpleControllerHandlerAdapter
ExceptionResolver
- Bean: handlerExceptionResolver
其他
- Bean: mvcConversionService
- Bean: mvcValidator
前面说过各个组件都是可以定制化,在WebMvcConfigurationSupport是通过模板方法模式来实现的,在各个发布成Bean的方法中,都调用了自定义组件的抽象方法,在子类中可以覆盖,如
对HandlerAdapter组件,有addInterceptors(InterceptorRegistry registry)可以添加自己的拦截器;
对conversionService组件,有addFormatters(FormatterRegistry registry)可以添加自己的类型转换器;
等等。。。
从而实现定制化。
上面提到子类,Spring mvc提供的默认实现是DelegatingWebMvcConfiguration,覆盖父类的方法之前,它会寻找容器中所有的WebMvcConfigurer实现类,将所有WebMvcConfigurer实现类中的配置组合起来,组成一个超级配置,这样,WebMvcConfigurationSupport中的bean发布时,就会把这所有配置都带上了。
不知道说清楚了没有
阅读全文
0 0
- Spring mvc注解配置的背后
- Spring mvc注解配置的背后
- spring mvc注解配置
- Spring MVC 注解配置
- Spring-MVC 注解配置
- 配置注解驱动的 Spring MVC
- 注解方式配置的spring mvc
- spring MVC的注解
- Spring MVC的注解@
- 注解方式配置spring-mvc
- spring mvc注解基本配置
- Spring Web MVC简介 、基于XML配置的MVC应用 、基于注解配置的MVC应用
- spring mvc与spring注解配置 说明
- 基于注解的Spring MVC 框架搭建及配置详解
- SSM搭建-Spring mvc基于注解的配置(13)
- spring mvc注解配置及@value的使用说明
- Spring MVC惯用的注解
- 基于spring注解的MVC
- C++ char*,const char*,string的相互转换
- Nexus 私服(Linux)搭建
- 334. Increasing Triplet Subsequence
- C++之STL Stack和Queue(4)---《C++ STL》
- 谈谈HTTP的流程
- Spring mvc注解配置的背后
- Spring Cache抽象-基于XML的配置声明(基于ConcurrentMap的配置)
- 小C语言--词法分析程序
- CodeForces 865D Buy Low Sell High(思维)
- POJ 2358|URAL 1034|Queens in Peaceful Positions
- 第四周项目4 猴子选大王
- Java并发编程 03 Java 线程状态图
- 最大子数组
- big (Trie)