Java 获取所有路径变量
我想开发一个返回json文件的服务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("=
@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,但是你知道我怎么做吗?我是说我怎样才能找到那条路