かとじゅんの技術日誌

技術の話をするところ

読んでる本

1冊目は,id:habuakihiroさんの本,DB設計本はいろいろ読んだけど,これだけは読んでいなかったし,実践的でよい感じがしたので買ってみました.ゼロベースでもう一回初心に戻って読んでみたいと思います.

楽々ERDレッスン (CodeZine BOOKS)

楽々ERDレッスン (CodeZine BOOKS)

最近マルチメディアに対応してほしいという要求が多いので,Flash Videoでも勉強してみようかと.Flex2APIを覚えた方がよさげだと思いますが,とりあえず基礎本購入.そのうち,Flex2でビデオプレーヤーでも作るべ.

Flash Video教科書―Flash Videoの基本から応用まで

Flash Video教科書―Flash Videoの基本から応用まで

認証用Aspectについて

http://d.hatena.ne.jp/j5ik2o/20070223/1172204878

の独自インターセプタを作るという部分で,Aspectアノテーションを使ってLoginInterceptorを割り当てていたのですが,これはHOT deploy時しか正常に動作しないことに気付きました...orz

public class TopPage {

  // ページを開くとき一度だけ呼ばれるメソッド。
  // このメソッドにLoginInterceptorを割り当てて認証チェックさせます。
  @Aspect("LoginInterceptor")
  public String initialize() {
    return null;
  }

}

Seasar-user MLでid:koichikさんにアドバイスをいただきなんとかCOOL deployで動作できるようになりました.

で,COOL deployでもちゃんと動作するようにするには,Aspectアノテーションを削除して(Aspectアノテーションで指定してしまうとLoginInterceptorがシングルトンになるんでしょうね.きっと),customize.diconに以下の設定を追加します.

<component name="loginAspectCustomizer" class="org.seasar.framework.container.customizer.AspectCustomizer">
	<property name="useLookupAdapter">true</property>
	<property name="pointcut">"initialize"</property>
	<property name="interceptorName">"loginInterceptor"</property>
	<initMethod name="addClassPattern">
		<arg>"jp.grandtech.app.web"</arg>
		<arg>".*Page"</arg>
	</initMethod>
	<initMethod name="addIgnoreClassPattern">
		<arg>"jp.grandtech.app.web"</arg>
		<arg>".*LoginPage"</arg>
	</initMethod>
</component>
<component name="pageCustomizer" class="org.seasar.framework.container.customizer.CustomizerChain">
	<initMethod name="addCustomizer">
		<arg>loginAspectCustomizer</arg>
	</initMethod>
	<initMethod name="addCustomizer">
		<arg>pageSupportAspectCustomizer</arg>
	</initMethod>
</component>

まず,loginInterceptor用のカスタマイザ loginAspectCustomizerの設定を作ります.
ここでは,useLookupAdapterがtrueになるように設定し,pageCustomizerのチェインに,loginAspectCustomizerを追加するようにします.
これで,HOT deployだけでなく,COOL deployでも正常に動作可能になります.