gpt4 book ai didi

java - 在维护预先存在的 XML 映射的同时启用 Spring MVC 注释

转载 作者:搜寻专家 更新时间:2023-10-31 20:06:31 25 4
gpt4 key购买 nike

我正在开发一个使用 XML 映射在 Spring 2.5 下开发的应用程序。最近,我们将我们的 JARS 升级到 Spring 3.0,并且还添加了一些组件扫描,以尝试使用 Spring 3.0 的新 MVC 功能,同时仍然保持我们现有的 XML 映射。

但是,如果我们要添加以下内容以启用 sping mvc 注释

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

<!-- The following is the new XML configuration that we have tried to add -->
<mvc:annotation-driven/>

<!-- ... old XML mappings -->

</beans>

然后,Spring 只查找用@Controller 注释的 Controller 和我们的旧 Controller XML 映射似乎被忽略了。这个问题的唯一解决方案是我们需要将所有旧的 XML 映射更新为基于注释(一项艰巨的任务),还是有其他解决方案?

我们旧的 XML 映射的一个示例如下:

<bean id="loginController" class="com.app.controller.login.LoginController">
<property name="loginService" ref="loginService"/>
</bean>

LoginController 扩展了 SimpleFormController。我们的许多其他旧 Controller 要么扩展 SimpleFormController 要么 MultiActionController。

这就是我们的 Controller 的映射方式。

     <bean id="urlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/login">loginController</prop>
...

最佳答案

我很确定它是 Controller 映射的一个或另一个,但如果您有以下 bean 设置,基于注释的功能(如 @RequestParam )应该仍然有效...

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>

我不记得我是否成功地混合和匹配了您所描述的内容,所以请发表评论并提供任何反馈。

我怀疑您是否可以在 XML 和注释中定义 URL 映射处理程序,因为 servlet 上下文只能使用一个映射器, 这意味着您的注释和 XML 映射必须准确排列。

关于java - 在维护预先存在的 XML 映射的同时启用 Spring MVC 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5129061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com