2

私のアプリケーションは POST メソッドを使用して html フォームを処理し、webapp はユーザーが入力したデータの静的ファイル (xls) を生成する必要があります。

ユーザーの静的リンクを生成したいと思います/download/{uuid}。この URI は、ユーザーがこのリンクを共有またはブックマークできるように、静的に生成されたファイルを返す必要があります (このようなリンクは、数日後に破棄される可能性があります)。

私の webapp は db を使用していません。key-value データを持つ 1 つのテーブルだけに db を使用することは避けたいと思います。

問題は、スレッドセーフを考慮してSpring MVCでこのアプローチをどのように実装するかです?

uuid/ファイル パスの追加/読み取り用のメソッドを使用してsingletonスコープを持つSpring Bean を作成する必要がありますか?syncronizedMap

この問題を解決する最善の方法を教えてください。

4

2 に答える 2

0

固定観念にとらわれずに考えると、ストレージを必要とせず、しかもスレッド セーフであるソリューションが 1 つあります。ファイルを作成してから静的リンクを生成する (そしてそれらの関係をマップ、データベース、またはその他のキーと値のストレージに配置する) 代わりに、最初に結果のリンクを作成し、次にそのリンクを使用して次を使用してファイルの名前を生成します。ある種の変換方法。次に、ユーザーが後で同じファイルを要求したときに、同じ変換方法を使用してファイルの名前を再生成するため、ストレージはまったく必要ありません! 変換方法の最も簡単な実装は、もちろんファイル名として url を使用することです (URL のエンコード/デコードに注意してください) が、必要なだけ難しくすることもできます。

于 2013-10-06T16:46:07.937 に答える