and 在servlet中有什么区别?
-
09-10-2019 - |
题
我从春季2.5迁移到春季3。
他们介绍了 <mvc:annotation-driven />
做一些黑魔法。预计仅在Servlet配置文件中声明这一点。
在春季2.5我刚刚使用过 <context:annotation-config />
和 <context:component-scan base='...'/>
标签在 application-context.xml
以及带有适当的基本软件包扫描的调度器servlet配置XML。
所以我想知道有什么区别 mvc:annotation-driven
和 context: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中添加的标签,可执行以下操作:
- 配置Spring 3类型转换服务(替代物业材料)
- 通过@numberformat添加对格式数字字段的支持
- 增加对格式日期,日历和JODA时间字段的支持,如果Joda Time在class Path
- 添加支持使用@valid验证@controller输入的支持,如果JSR-303提供商在classPath上
- 如果JAXB在classPath上,则增加支持阅读和写作XML的支持( @requestbody/ @response body的http消息转换)
- 如果杰克逊(Jackson)在classpath上(与#5相同),则增加了对阅读和写作JSON的支持
上下文:注释范围在同一应用程序上下文中查找bean上的注释,并声明对@Autowired, @resource,@required,@postConstruct等所有一般注释的支持。