我將一個大的Spring 3.0應用程序移植到Spring 3.2(是的,我知道)。應用結合了XML和註釋配置以定義途徑,例如:Spring MVC組合XML和註釋控制器配置
servlet.xml中:
<context:annotation-config/>
<context:component-scan base-package="foo.bar" />
...
<mvc:annotation-driven />
...
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
...
<property name="mappings">
<props>
<prop key="/booking/default.htm">booking.default</prop>
...
</props>
</property>
...
</bean>
<bean id="booking.default" class="foo.bar.BookingController">
...
</bean>
BookingController.java
@Controller
public class BookingController {
...
@RequestMapping(method = RequestMethod.GET)
public String handleRequest(...)
...
}
在Spring 3.0,其效果是將GET /booking/default.htm映射到BookingController的handleRequest方法,但是我一直無法在Spring 3.2中重新創建此行爲。
春季3.2,看來,忽略了XML和意見與@RequestMapping(method = RequestMethod.GET)
一樣註釋每一個方法,用java.lang.IllegalStateException: Ambiguous mapping found.
中止在啓動時有大量這樣配置的方法。其中一些在基礎庫類中有@RequestMapping,我無法更改。
我可以通過將URL路徑從XML配置移動到註釋來解決它,但我想避免(由於各種原因)並複製Spring 3.0行爲。
這可能嗎?尋找答案尚未成功。