org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter已弃用, mvc-dispatcher.xml中的org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping错误。为什么会这样? 请帮帮我吗?
代码如下
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="saveGeoJSON.html">HspatialController</prop>
</props>
</property>
</bean>
DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter是删除线
答案 0 :(得分:3)
如果您使用的是Spring 3.1及更高版本,则应该用RequestMappingHandlerMapping
和RequestMappingHandlerAdapter
替换这些类。
如果您查看Spring 3.1 reference documentation,您会看到为何不推荐使用这些类:
Spring 3.1引入了一组新的处理支持类 带注释控制器的请求:
RequestMappingHandlerMapping
RequestMappingHandlerAdapter
ExceptionHandlerExceptionResolver
这些类可替代现有的:
DefaultAnnotationHandlerMapping
AnnotationMethodHandlerAdapter上
AnnotationMethodHandlerExceptionResolver
新课程的制定是为了回应许多要求 注释控制器支持更可定制和开放的类 延期。而以前您可以配置自定义注释 控制器方法参数解析器,与您的新支持类 可以自定义任何支持的方法参数的处理或 返回值类型。
第二个值得注意的区别是HandlerMethod的引入 抽象来表示@RequestMapping方法。这种抽象 作为处理程序实例,新支持类始终使用它。 例如,HandlerInterceptor可以将处理程序从Object转换为 HandlerMethod并获得对目标控制器方法的访问权限 注释等。
MVC命名空间默认启用新类 通过@EnableWebMvc进行基于Java的配置。现有的课程将 继续可用,但建议使用新类 前进。