我是Spring MVC的新手,我有一个问题要问你。
我知道标记<mvc:annotation-driven />在servlet配置中处理@Controller、@RequestMapping等注释,但我使用的是portlets,我很好奇这个注释在这里是如何工作的?
谢谢!
发布于 2017-06-22 18:50:19
mvc:annotation-driven用于启用Spring MVC组件的默认配置。
如果不包含mvc:annotation-driven,则在使用context:component-scan创建beans或在XML文件中定义beans的情况下,MVC应用程序也可以工作
。但是,mvc:annotation-driven在配置特殊bean方面做了一些额外的工作,如果您没有在XML文件中使用此元素,则不会配置这些bean。
此标记将注册将请求分派到@控制器所需的HandlerMapping和HandlerAdapter。此外,它还根据类路径中存在的内容应用一些默认值。此类缺省值为:
如果Joda Time在用于验证@ PropertyEditors
上,如果Joda Time在用于验证@PropertyEditors
上,则使用Spring3Typejsr作为JavaBeans JSON的更简单和健壮的替代方案来格式化数字字段
spring配置文件中的context:component-scan元素将不再需要声明XML文件中的所有bean。查看spring配置文件中的以下声明:
<context:component-scan base-package="org.controller"/>spring应用程序配置文件中的上述声明将扫描指定包中的类,并创建bean实例。请注意,只有当该类使用正确的注释进行注释时,它才能创建bean。以下是该元素扫描的注释:
发布于 2017-06-22 18:16:45
它的工作原理是一样的。
如果你使用java配置,你将使用:
...
@Configuration
@EnableWebMvc <- (equivalent to <mvc:annotation-driven />)
@ComponentScan(basePackageClasses = { MyConfiguration.class })
...或者,如果您使用xml配置,您将使用:
...
<mvc:annotation-driven />
<context:component-scan base-package="package.*" />
...https://stackoverflow.com/questions/44629254
复制相似问题