我从春季2.5迁移到春季3。

他们介绍了 <mvc:annotation-driven /> 做一些黑魔法。预计仅在Servlet配置文件中声明这一点。

在春季2.5我刚刚使用过 <context:annotation-config /><context:component-scan base='...'/> 标签在 application-context.xml 以及带有适当的基本软件包扫描的调度器servlet配置XML。

所以我想知道有什么区别 mvc:annotation-drivencontext:annotation-config Servlet配置中的标签,在Spring 3配置文件中我可以消除什么?

有帮助吗?

解决方案

<context:annotation-config> 声明对一般注释的支持,例如 @Required, @Autowired, @PostConstruct, , 等等。

<mvc:annotation-driven /> 声明对注释驱动的MVC控制器的明确支持(即 @RequestMapping, @Controller, ,尽管对这些的支持是默认行为),并通过 @Valid 和消息主体编组 @RequestBody/ResponseBody.

其他提示

还有一些有关使用的详细信息 <mvc:annotation-driven /> 在里面 春季文档. 。简而言之, <mvc:annotation-driven /> 使您可以更好地控制弹簧MVC的内部工作。除非您需要文档上述部分中概述的一个或多个功能,否则您无需使用它。

此外,还有其他“注释驱动”标签可在其他弹簧模块中提供其他功能。例如, <transaction:annotation-driven /> 启用@transaction注释的使用, <task:annotation-driven /> @scheduled等人需要

MVC:注释驱动 是在弹簧3.0中添加的标签,可执行以下操作:

  1. 配置Spring 3类型转换服务(替代物业材料)
  2. 通过@numberformat添加对格式数字字段的支持
  3. 增加对格式日期,日历和JODA时间字段的支持,如果Joda Time在class Path
  4. 添加支持使用@valid验证@controller输入的支持,如果JSR-303提供商在classPath上
  5. 如果JAXB在classPath上,则增加支持阅读和写作XML的支持( @requestbody/ @response body的http消息转换)
  6. 如果杰克逊(Jackson)在classpath上(与#5相同),则增加了对阅读和写作JSON的支持

上下文:注释范围在同一应用程序上下文中查找bean上的注释,并声明对@Autowired, @resource,@required,@postConstruct等所有一般注释的支持。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top