1
同じコントローラフィールドを使用する2つのアクションメソッドを持つコントローラがある場合を考えてみましょう。このフィールドは遅く初期化する必要があります。Playのフィールド同期!コントローラ
public class SomeController extends Controller {
private static volatile Resource resource;
private static Resource getResource() {
if (resource == null) {
synchronized (SomeController.class) {
if (resource == null) {
resource = new Resource();
}
}
}
return resource;
}
public static void action1() {
getResource().doSomeAction();
}
public static void action2() {
getResource().doSomeAnotherAction();
}
}
Play Frameworkを使用して共通のリソースを同期する良い方法はありますか?リソースを遅延初期化する必要があると考えてください。
おかげで、 エイドリアン定期的なサーブレットを使用してサーブレットコンテナ(Tomcatのなど)、プレイ中や他の人でレイジーロードされたクラス(フィールド)との違いはありません