Information
2008-11-29
オンデマンドデプロイのすすめ
JavaでAnnotationがついたクラスがあったら、それに対して処理したい場合は、Seasar2のコンポーネント自動登録で使っているように、ファイルシステムまたは Jar ファイルを全走査してクラスロードする方法もあります。
ファイルシステムまたは Jar ファイルを全走査してクラスロードしてください。が結論です。
Seasar だったら、
org.seasar.framework.util.ClassTraversal
を読むべし。
Yamashiro0217の日記
でも、これは、Seasar2.3時代(3年前)の話で、技術としてはちょっと古い。
HOT deployなどと組み合わせると、リクエストのたびに全コンポーネントをデプロイする必要があるので、コンポーネントの数が増えると実用的には使えないのです。
そこで、考え出したのが、Seasar2のONDEMAND deploy。コンポーネントの定義を見に行って、あればそれを使う、なければ、その場でデプロイする方法。
ONDEMAND deployだと、リクエストで必要なコンポーネントしかデプロイされないので、コンポーネントの数がいくら増えても平気です。
ONDEMAND deployを理解するには、いまならSlim3 Containerを見るのが一番簡単です。
をみれば、きっと理解できるでしょう。4つのクラスを見るだけなので簡単。
PrototypeBeanFactoryでDisposableを実装していますが、Disposableは、HOT deployを実現するためのキークラスです。Disposable#disponse()は、HOT deployのときには、リクエストの最後、COOL deploy(HOT deployじゃないもの)のときには、アプリケーションが終了するタイミングで呼び出されます。
このdisposeメソッドで、キャッシュしているメタデータを開放するようにしてあげれば、HOT deployに対応できるだけでなく、COOL deployのときは、キャッシュが利くので、パフォーマンスが劣化しません。
HOT deployとCOOL deployをうまく両立させるためには、それなりのノウハウが必要です。Seasar2の2年間のノウハウの蓄積を学ばない手はないですよね。
時代は、ONDEMAND deployですよ。
普通にJavaで開発するときに出てくる技術的な課題は、Seasar2で、ほとんど解決できていると思うので、わかんないことがあれば、きいてください。いくらでも教えますよ。
- 184 http://reader.livedoor.com/reader/
- 113 http://search.yahoo.co.jp/search?p=ibm+リストラ&rs=0&search_x=1&tid=top_ga1&ei=UTF-8&fr=top_ga1&yuragi=off
- 92 http://d.hatena.ne.jp/
- 83 http://www.google.co.jp/search?hl=ja&q=ibm+リストラ&lr=
- 77 http://b.hatena.ne.jp/
- 61 http://www.google.co.jp/search?sourceid=navclient&aq=t&hl=ja&ie=UTF-8&rlz=1T4GFRC_jaJP204JP205&q=ibm+リストラ
- 60 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4GGIH_jaJP263JP263&q=IBM リストラ
- 57 http://www.google.co.jp/reader/view/
- 51 http://www.google.co.jp/search?q=ひがやすを&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a
- 50 http://b.hatena.ne.jp/entrylist