MVC 注释 Spring MVC <mvc:annotation-driven />
MVC Annotation Spring MVC <mvc:annotation-driven />
我是 Spring MVC 的新手,我有一个问题要问你。
我知道标签<mvc:annotation-driven />
处理servlet配置中的@Controller、@RequestMapping等注释,但我使用的是portlet,我很好奇这个注释在这里是如何工作的?
谢谢!
效果一样。
如果您使用 java 配置,您将使用:
...
@Configuration
@EnableWebMvc <- (equivalent to <mvc:annotation-driven />)
@ComponentScan(basePackageClasses = { MyConfiguration.class })
...
或者,如果您使用 xml 配置,您将使用:
...
<mvc:annotation-driven />
<context:component-scan base-package="package.*" />
...
mvc:annotation-driven 用于启用具有默认配置的 Spring MVC 组件。
如果您不包含 mvc:annotation-driven 如果您使用 context:component-扫描创建 bean 或在您的 XML文件
。但是,mvc:annotation-driven 在配置特殊 bean 方面做了一些额外的工作,如果您没有在 XML 文件中使用此元素,则不会配置这些 bean。
此标记将注册将请求分派给您的@Controller 所需的HandlerMapping 和HandlerAdapter。此外,它还会根据您的 class 路径中存在的内容应用一些默认值。这样的默认值是:
- 使用 Spring 3 Type ConversionService 更简单
JavaBeans PropertyEditors 的强大替代品
支持使用@NumberFormat
格式化数字字段
支持格式化日期、日历和 Joda 时间字段
@DateTimeFormat,如果 Joda Time 在 classpath
上
- 支持使用@Valid 验证@Controller 输入,如果是 JSR-303
提供商在 class 路径
上
- 支持读取和写入 XML,如果 JAXB 在 classpath
上
- 支持读写JSON,如果杰克逊在class路径
context:component-scan 配置文件中的 spring 元素将消除在 XML 文件中声明所有 bean 的需要。查看 spring 配置文件中的以下声明:
<context:component-scan base-package="org.controller"/>
上述 spring 应用程序配置文件中的声明将扫描指定包内的 classes 并创建 beans 实例。请注意,只有在 class 使用正确的注解进行注解时,它才能创建 bean。以下是该元素扫描到的注解:
- @组件
- @存储库
- @服务
- @控制器
我是 Spring MVC 的新手,我有一个问题要问你。
我知道标签<mvc:annotation-driven />
处理servlet配置中的@Controller、@RequestMapping等注释,但我使用的是portlet,我很好奇这个注释在这里是如何工作的?
谢谢!
效果一样。
如果您使用 java 配置,您将使用:
...
@Configuration
@EnableWebMvc <- (equivalent to <mvc:annotation-driven />)
@ComponentScan(basePackageClasses = { MyConfiguration.class })
...
或者,如果您使用 xml 配置,您将使用:
...
<mvc:annotation-driven />
<context:component-scan base-package="package.*" />
...
mvc:annotation-driven 用于启用具有默认配置的 Spring MVC 组件。
如果您不包含 mvc:annotation-driven 如果您使用 context:component-扫描创建 bean 或在您的 XML文件
。但是,mvc:annotation-driven 在配置特殊 bean 方面做了一些额外的工作,如果您没有在 XML 文件中使用此元素,则不会配置这些 bean。
此标记将注册将请求分派给您的@Controller 所需的HandlerMapping 和HandlerAdapter。此外,它还会根据您的 class 路径中存在的内容应用一些默认值。这样的默认值是:
- 使用 Spring 3 Type ConversionService 更简单 JavaBeans PropertyEditors 的强大替代品
支持使用@NumberFormat
格式化数字字段
支持格式化日期、日历和 Joda 时间字段 @DateTimeFormat,如果 Joda Time 在 classpath
上
- 支持使用@Valid 验证@Controller 输入,如果是 JSR-303 提供商在 class 路径 上
- 支持读取和写入 XML,如果 JAXB 在 classpath 上
- 支持读写JSON,如果杰克逊在class路径
context:component-scan 配置文件中的 spring 元素将消除在 XML 文件中声明所有 bean 的需要。查看 spring 配置文件中的以下声明:
<context:component-scan base-package="org.controller"/>
上述 spring 应用程序配置文件中的声明将扫描指定包内的 classes 并创建 beans 实例。请注意,只有在 class 使用正确的注解进行注解时,它才能创建 bean。以下是该元素扫描到的注解:
- @组件
- @存储库
- @服务
- @控制器