Java 获取所有路径变量

Java 获取所有路径变量,java,json,spring,rest,spring-boot,Java,Json,Spring,Rest,Spring Boot,我想开发一个返回json文件的服务 @RequestMapping(value = "/{fileName}/**", method = RequestMethod.GET, produces = { "application/json" }) public String jsonREST(@PathVariable String fileName) { StringBuilder jsonBuilder = new StringBuilder(); logger.info("=

我想开发一个返回json文件的服务

@RequestMapping(value = "/{fileName}/**", method = RequestMethod.GET, produces = { "application/json" })
public String jsonREST(@PathVariable String fileName) {
    StringBuilder jsonBuilder = new StringBuilder();
    logger.info("===> File name: " + fileName);
    try {
        BufferedReader bf = new BufferedReader(new FileReader("fileName + ".json"));
        String line = null;
        while ((line = bf.readLine()) != null) {
            jsonBuilder.append(line);
        }
    } catch (Exception e) {
        System.out.println("Error Parsing: - ");
    }
    return jsonBuilder.toString();
}
例如,如果json文件位于子目录或其他目录中,我需要获取路径

用例:

  • localhost:8080/my directory/my sub dir/my json文件
  • localhost:8080/myJSON文件
你知道我怎样才能得到这个洞的路径吗

my-directory/my-sub-dir/my-json-file
或者,如果你有另一个解决方案来做同样的工作,我会为此感到非常高兴


致以最诚挚的问候

您似乎不需要servlet容器来实现这一点。如果我得到了您想要做的事情,那么您希望静态地为json文件提供服务。尝试调整此选项:

通过让Spring注入
HttpServletRequest
并按如下方式获取完整的请求url:

@RequestMapping(value = "/{fileName}/**", method = RequestMethod.GET, produces = { "application/json" })
public String jsonREST(HttpServletRequest request, @PathVariable String fileName) {
    String uri = request.getRequestURI();

    //Do your stuff here
}

由于各种原因,您的代码效率低下。为什么不直接返回
FileSystemResource
并让Spring Boot自己完成呢?谢谢@lyubmyr,但是你知道我怎么做吗?我是说我怎样才能找到那条路