1

PortletPreferencesクラスの静的クラスを作成する予定です。PortletPreferences.getValue()を呼び出すたびに、内部ポータル データベースを呼び出して値を取得します。PortletPreference.setValue()PortletPreferences.store( )を呼び出して、データベースに保存します。設定を変更するたびに、データベース呼び出しが発生します。コードのパフォーマンスを最適化したい。どうすればこれを達成できるか、ヘルプと提案を探しています。

私には、正しいかどうかわからない考えがあります。これを実現するために静的 Map クラスを作成できますか?間違っている場合は修正してください。ありがとう !

4

1 に答える 1

0

設定を基本的に「読み取り専用」にし、すべてのユーザーに対して同じにすることを計画している場合は、それらを一度マップにロードしてから、API を介してではなく常にメモリ内でそれらにアクセスしても問題ありません。

ただし、(ポートレット アプリを再起動せずに) ポートレット プリファレンスを変更する予定がある場合、またはユーザーがプリファレンスに独自の値を設定できる場合は注意が必要です。どちらの場合も、値は動的であり、おそらく毎回取得する必要があります。誰かが設定を更新して、それが意図した効果を持っていないことを望んでいません。また、あるユーザーが別のユーザーの保存された設定値で作業することも望ましくありません。

設定をマップに保存することは、基本的に共有キャッシュを作成することであり、API に任せるのではなく、手動で更新する必要があります。そのようなキャッシュの意味が要件に合っている場合は、ぜひそれを選択してください。

于 2012-11-19T23:26:52.320 に答える