前提・実現したいこと
SQLでデータを取得したいのですが、毎回取ってくると毎回DBアクセスが発生するためそんなに現状データ量が多いわけではないのですがデータが増えた際にもパフォーマンスを安定させたいためキャッシュしデータを所定期間保持しておきたいと考えています。
どのようにすればよいかで悩んでいます。
※所定期間:3日後。(本日、動かし取得した場合は明々後日まで持っていてその翌日になるとクリアされているイメージです。)
変数に値がないか、キャッシュの有効期限が過ぎている場合に新たに取ってくるようにします。
該当のソースコード
Java
1package test; 2public class TestInterCeptor extends HandlerInterceptorAdapter { 3 private static ArrayList<Test> resultTestList = new ArrayList<>(); 4 5 public boolean preHandle(HttpServletRequest req, HttpServletResponse res, Object Handler) { 6 Calendar cal = Calendar.getInstance(); 7 cal.add(Calendar.DATE, 3);//これで3日後の日付が取れる。 8 9 if (resultTestList.isEmpty() || "有効期限が切れている場合") { 10 resultTestList = (ArrayList<Test>)testMapper.selectByTest(); 11 } 12 return true; 13 }
条件判定の部分で悩んでいます。考え方など知恵を貸していただける方がいましたらお願いいたします。
※割愛しているだけで必要なものはインポートされています。コンパイルエラーなどは現状ありません。
補足情報(FW/ツールのバージョンなど)
Java8、Spring MVC
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。