Явные регистрации отображений обработчиков - PullRequest
0 голосов
/ 16 октября 2018

Я более детально изучал документацию по Spring и узнал, что мы можем зарегистрировать метод отображения обработчиков во время выполнения.Я понимаю, как это делается, но вещь, которую я не могу понять, зачем нам такая функциональность в первую очередь?

Пожалуйста, обратитесь к следующему фрагменту кода для регистрации обработчиков.

@Autowired
  public void setHandlerMapping(RequestMappingHandlerMapping mapping, HelloRestController handler) 
        throws NoSuchMethodException {

    RequestMappingInfo info = RequestMappingInfo
            .paths("/mycustomapi").methods(RequestMethod.GET).build(); 
    Method method = HelloRestController.class.getMethod("customHandler"); 
    mapping.registerMapping(info, handler, method); 
}

Документация

Если кто-то может объяснить некоторые случаи использования, когда это необходимо, это будет полезно, спасибо.

1 Ответ

0 голосов
/ 16 октября 2018

Я никогда не использовал это, но вот одна утилита, о которой я могу подумать:

Поскольку аннотации принимают только постоянное выражение в качестве параметров, вы не можете написать что-то подобное:

@GetMapping(requestMapping(...)) // The value for annotation GetMapping.value must be a constant expression
public String customHandler(...) {
 ...
}

Но вы можете написать это:

RequestMappingInfo info = RequestMappingInfo
    .paths(requestMapping(...))
    .methods(RequestMethod.GET)
    .build();

Другими словами, вы можете написать обработчики для URI, которые рассчитываются (например, сохраняются в файле конфигурации).

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