spring <mvc:annotation-driven />注解意义
来源:互联网 发布:mac分销渠道设计方案 编辑:程序博客网 时间:2024/05/16 14:27
<mvc:annotation-driven /> 是一种简写形式,完全可以手动配置替代这种简写形式,简写形式可以让初学都快速应用默认配置方案。<mvc:annotation-driven /> 会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,是spring MVC为@Controllers分发请求所必须的。
并提供了:数据绑定支持,@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持,读写XML的支持(JAXB),读写JSON的支持(Jackson)。
后面,我们处理响应ajax请求时,就使用到了对json的支持。
后面,对action写JUnit单元测试时,要从spring IOC容器中取DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,来完成测试,取的时候要知道是<mvc:annotation-driven />这一句注册的这两个bean。
<context:annotation-config>
declares support for general annotations such as @Required
, @Autowired
, @PostConstruct
, and so on.
<mvc:annotation-driven />
is actually rather pointless. It declares explicit support for annotation-driven MVC controllers (i.e.@RequestMapping
, @Controller
, etc), even though support for those is the default behaviour.
My advice is to always declare <context:annotation-config>
, but don't bother with <mvc:annotation-driven />
unless you want JSON support via Jackson.
<mvc:annotation-driven/>相当于注册了DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter两个bean,配置一些messageconverter。即解决了@Controller注解的使用前提配置。
<context:annotation-config/>是对包进行扫描,实现注释驱动Bean定义,同时将bean自动注入容器中使用。即解决了@Controller标识的类的bean的注入和使用。
一开始我在写配置的时候,只写了<context:component-scan/>,并没有使用<mvc:annotation-driven/>,servlet拦截*.do,.do请求可以被正确捕捉和处理。代码如下
mvc-servlet.xml
<context:component-scan base-package="com"></context:component-scan>
web.xml中
- <servlet>
- <servlet-name>mvc</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>mvc</servlet-name>
- <url-pattern>*.do</url-pattern>
- </servlet-mapping>
后来为了解决静态资源访问的问题,servlet改成了拦截所有请求,即/,并添加了默认的servlet,这时候*.do请求不能被控制器捕捉了,页面错误为404。直到添加了<mvc:annotation-driven/>之后,.do请求才又能被正确捕捉和处理。代码如下
mvc-servlet.xml
- <context:component-scan base-package="com"></context:component-scan>
- <mvc:annotation-driven/>
- <mvc:resources mapping="/styles/**" location="/WEB-INF/resource/styles/"/>
- <mvc:default-servlet-handler/>
- <servlet>
- <servlet-name>mvc</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>mvc</servlet-name>
- <url-pattern>/</url-pattern>
- </servlet-mapping>
- Spring: <mvc:annotation-driven />注解意义
- spring <mvc:annotation-driven />注解意义
- <mvc:annotation-driven />注解意义
- <mvc:annotation-driven />注解意义
- <mvc:annotation-driven />注解意义
- <mvc:annotation-driven />注解意义
- <mvc:annotation-driven />注解意义
- <mvc:annotation-driven />注解意义
- <mvc:annotation-driven />注解意义
- <mvc:annotation-driven/>注解意义
- <mvc:annotation-driven />注解意义
- <mvc:annotation-driven />注解意义
- <mvc:annotation-driven />注解意义
- <mvc:annotation-driven />注解意义
- <mvc:annotation-driven />注解意义
- <mvc:annotation-driven />注解意义
- <mvc:annotation-driven />注解意义
- <mvc:annotation-driven />注解意义
- 一句话概括java接口的意图
- SQL 数据库优化 索引,SQL索引优化-技巧
- MojoShader
- 《Linux命令、编辑器与Shell编程》读书笔记11-Shell编程基础
- freemarker集成shiro标签
- spring <mvc:annotation-driven />注解意义
- 在mac上搭建python环境
- MFC的OnMouseMove移动位置和OnMouseWheel缩放实现
- redis主从复制(转载)
- ARM 移植 pppd
- c++构造函数
- java 一些问题验证
- Greenfoot游戏——推箱子
- 解决Access连接 accdb 不可识别的数据库格式异常