Замена @Context UriInfo в приложении Spring Boot - PullRequest
0 голосов
/ 17 марта 2020

Я нахожусь в процессе модернизации и преобразования устаревшего монолитного приложения, которое выполняется в Spring на Jetty, в приложение Spring Boot.

В устаревшем коде у меня есть конечная точка, которая выглядит так:

@POST
@Produces({MediaType.APPLICATION_JSON})
@Consumes({MediaType.APPLICATION_JSON})
@Path("/zoo/feedCats")
@WebMethod
public Response giveFood( @Context UriInfo uri, HungryCats hungryCats){...}

И первый черновик новой конечной точки в Spring Boot выглядит так:

@PostMapping("/zoo/feedCats")
public Response giveFood( UriInfo uri , @RequestBody HungryCats hungryCats) {...}

Я не уверен, что должна быть правильной заменой @Context UriInfo uri, который находится в унаследованном коде.

Я нашел этот пост от 2016 года и задавался вопросом, есть ли что-то еще для использования?

1 Ответ

0 голосов
/ 18 марта 2020

Итак, я решил это так:

Создано

class MyUriInfo implements UriInfo{..}

В контроллере я изменил подпись на:

@PostMapping("/zoo/feedCats")
public Response giveFood(@RequestBody HungryCats hungryCats, 
                                      HttpServletRequest request,
                                      @RequestParam Map<String, String> allParams)

И создал метод транслятора он берет то, что мне нужно от request и allParams и вводит их в MyUriInfo:

 public UriInfo requestToUriInfo(HttpServletRequest request, Map<String, String> 
                                                               allParams) {
     ...
     retrun new MyUriInfo(...)
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...