Spring MVC RequestMappingHandlerMapping с AbstractDetectingUrlHandlerMapping - PullRequest
0 голосов
/ 21 ноября 2019

Я обновляю версию Spring унаследованного приложения с 4.x до 5.1. Это приложение имеет API для отдыха на основе Spring MVC. Он использует пользовательское сопоставление обработчика, которое расширяет AbstractDetectingUrlHandlerMapping, и адаптер обработчика, который AnnotationMethodHandlerAdapter.

Так как AnnotationMethodHandlerAdapter был удален в Spring 5.x в пользу RequestMappingHandlerAdapter, я должен изменитьАдаптер обработчика на RequestMappingHandlerAdapter. Ниже приведены вопросы -

1) Могу ли я продолжать использовать пользовательскую реализацию AbstractDetectingUrlHandlerMapping? Будет ли это работать с RequestMappingHandlerAdapter? Или, если я использую RequestMappingHandlerAdapter, мне придется использовать RequestMappingHandlerMapping?

2) Чем RequestMappingHandlerMapping отличается от AbstractDetectingUrlHandlerMapping? AbstractDetectingUrlHandlerMapping отображает абсолютный URL или относительный путь с контроллером / обработчиком?

В Spring 4.x у меня есть следующая реализация -

servlet.xml

<bean name="extHandlerMapping" class="mypackage.CustomHandlerMapping">
    <property name="interceptors">
         <list>
              <bean class="mypakage.RequestInterceptor"/>
         </list>
    </property>
</bean>

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="webBindingInitializer">
        <bean class="mypackage.spring.BindingInitializer"/>
    </property>
    <property name="cacheSeconds" value="0"/>
</bean>

CustomHandlerMapping.java

public class CustomHandlerMapping extends AbstractDetectingUrlHandlerMapping {

  protected String[] determineUrlsForHandler(String beanName) {
    ........
    ............
  }

  protected String[] determineUrlsForHandlerMethods(Class<?> handlerType, final boolean hasTypeLevelMapping) {
     ......
     ..........
  }


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...