【问题标题】:@Context UriInfo replacement in Spring Boot appSpring Boot 应用程序中的 @Context UriInfo 替换
【发布时间】:2020-03-17 08:08:43
【问题描述】:

我正在对在Jetty 上以Spring 运行的遗留单体应用程序进行现代化改造并将其转换为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 年的 this post,想知道是否还有其他用途?

【问题讨论】:

标签: java spring spring-boot servlets


【解决方案1】:

所以我就这样解决了:

创建

class MyUriInfo implements UriInfo{..}

在控制器中,我将签名更改为:

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

并创建了一个翻译器方法,该方法从requestallParams 获取我需要的内容并将它们注入MyUriInfo

 public UriInfo requestToUriInfo(HttpServletRequest request, Map<String, String> 
                                                               allParams) {
     ...
     retrun new MyUriInfo(...)
 }

【讨论】:

    猜你喜欢
    • 2016-04-13
    • 1970-01-01
    • 1970-01-01
    • 2017-07-27
    • 1970-01-01
    • 2017-08-20
    • 1970-01-01
    • 2016-04-24
    相关资源
    最近更新 更多