<mvc:annotation-driven>?</mvc:annotation-driven>的用途是什么?

时间:2013-04-03 17:14:54

标签: spring spring-mvc

我首先要澄清的是,在堆栈溢出和其他论坛中有很多关于此的讨论。我已经阅读了这些并理解了<mvc:annotation-driven />背后的一些概念。但是我阅读的越多,我就越困惑。在一些回复中,我读过<mvc:annotation-driven />@ResponseBody提供了支持。但由于我是初学者,我已经安装了sping-mvc-showcase应用程序,并发现在不使用<mvc:annotation-driven />的情况下广泛使用了这个注释。你能不能请教我这个?

3 个答案:

答案 0 :(得分:0)

如果您正在使用Spring MVC的xml配置,那么就是如何设置对使用MVC注释(以及其他一些东西)的支持。使用较新版本的Spring MVC,您可以使用纯Java配置应用程序,并且可以通过向配置类添加注释@EnableWebMVC来实现相同的目的。

@Configuration
@EnableWebMVC
public class MyConfig {
    // rest of config
}

答案 1 :(得分:0)

Spring MVC或者就此而言,Spring的任何实现都可以通过两种方式配置Xml或Java-Based。简单地在Xml配置文件中使用<mvc:annotation-driven>标记意味着您要向Spring指定您将使用Spring注释,Spring必须在基于Java的程序中查找,例如 -

@Controller
public class index() {
 ...
}
当您的应用程序初始化时,

将在Spring的Container中注册为Controller,Spring将扫描您在配置中指定的基础包。 还有注释,如

  

“@ EnableWebMvc”

简单地启用可以使用的各种类,这些类非常有用,专门用于帮助使用Spring开发MVC Web应用程序。

答案 2 :(得分:0)

不仅可以让您使用MVC相关的注释。 查看the schema将显示您可以配置HttpMessageConverters,HandlerMethodArgumentResolvers,HandlerMethodReturnValueHandlers,异步请求处理选项,FormattingConversionServices,JSR-303 Validator,ContentNegotiationManager, MessageCodesResolver等等。

如果你自己没有配置任何一个,它将为你提供默认值。

它只影响Servlet MVC。