2017-04-25 10 views
1

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 /私のディレクトリ/私のサブディレクトリ/私の-JSONファイル
  • はlocalhost:8080 /私の-JSONファイル

私は

my-directory/my-sub-dir/my-json-file 

それとも、同じ仕事をするための別の解決策を持っている場合、私はVになります例えば穴のパスを取得することができますどのように任意のアイデアを持っているでしょうあなたはこれを達成するためにサーブレットコンテナを必要としないよう

+0

あなたのコードは、様々な理由のために非効率的です。なぜ、単に 'FileSystemResource'を返さず、Spring Bootにすべてをさせるのはなぜですか? –

+0

ありがとう@lyubomyrしかし、あなたは私がそれをどうやってできるのか考えていますか?私はパスを得ることができる方法を意味する – Victor

答えて

1

あなたは春が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 
} 
+0

ありがとう@それは動作します – Victor

関連する問題