タグ

ブックマーク / paulownia.hatenablog.com (2)

  • 二重チェックイディオム - NullPointer's

    以前、Javaではダブルチェックイディオムを使ってはいけないと言われていた。Effective Java第1版にもダメと書かれていたのだが、Effective Java 読書会 12 日目 「スレッド・セーフってなによ!!」 - IT戦記によると、第2版では遅延初期化の方法として掲載されているらしい。 ちょっと調べてみた。 JDK5 and later extends the semantics for volatile so that the system will not allow a write of a volatile to be reordered with respect to any previous read or write, and a read of a volatile cannot be reordered with respect to any follow

    二重チェックイディオム - NullPointer's
    mirrored
    mirrored 2010/04/14
    シングルトンインスタンスの遅延初期化
  • サーブレット仕様の認証を使わずにgetRemoteUserやisUserInRoleを使う。 - NullPointer's

    JavaのWebアプリでユーザ認証を行う場合、サーブレット仕様で決められた認証機能を使うか、独自の認証機構を実装するか、いずれかであると思う。 サーブレットの認証機能を使うとHttpServletRequestのisUserInRoleやgetRemoteUserが有効になるのが地味に嬉しい。Strutsフレームワークのロールによるアクセス制御も有効になるのでサーブレットの認証機能は結構使える。一方、独自の認証機構を使うと自由にログイン処理を記述できる代わりにHttpServletRequestのgetRemoteUserやisUserInRoleは使えない。 しかし独自の認証でもHttpServletRequestWrapperとFilterを組み合わせれば、getRemoteUserやisUserInRoleを有効にできる。 まず、認証時にユーザ名とロールを適当な名前でセッションに格納

    サーブレット仕様の認証を使わずにgetRemoteUserやisUserInRoleを使う。 - NullPointer's
  • 1