2008-02-01から1ヶ月間の記事一覧

DIの定義ファイルと環境毎の設定ファイル

コンポーネント(あるいはBean)の初期値を設定するのに、DIの定義ファイル(Seasarならdiconファイル)のプロパティ値を設定する仕組み(Seasarならpropertyタグ)を使えば良いじゃないという考え方もあるようだけど、細かい数値や文字列を定義ファイルに一杯書く…

続・設定ファイルの内容をAOPでオブジェクトに設定する実験

(前回の続き)ConstructorInterceptorを使った設定ファイル内容のオブジェクトへの自動適用の仕組みを作ったものの、ターゲットとして想定していたDI+AOP環境であるSeasar2では(そのままでは)ConstructorInterceptorを使用できないようなのでその辺をなんとか…

設定ファイルの内容をAOPでオブジェクトに適用する実験

開発環境と本サイトなど、異なる環境でプログラムを動作させる場合、環境に応じてソースコードの変更をおこなわなくても済むように設定値を設定ファイルに外出しするというのは割と一般的だと思う。しかし、その設定値を使うクラスにとって設定値(例えば、メ…

plistっぽいxml読み込み用digester-rules

(2008/5/24 追記: 本物のplist読み込みについては真・plist形式のxml読み込み用digester-rules(およびクラス) - terazzoの日記を参照)設定ファイルをXMLで書く事って多いんだけど、javaでXML使う時って型安全や妥当性に拘りすぎて仰々しいと時々思う。かとい…

Proxyを使ってメソッド呼び出しを記録/再生する実験

(前回からの続き)Proxyを使ってリモート呼び出しをおこなうという魂胆。ところでネットワークストリームを使ったoneway voidのリモート呼び出しは、ストリームをファイルに置き換えるだけで、メソッド呼び出しの記録/再生に使えるはず。ということでProxyを…

Proxyを使って強引にキャストする実験

というのが出来そうなので書いてみた ソースコード package sample.proxycast; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; @SuppressWarnings("unchecked") public final class ProxyC…

ProxyでMixin的な処理

が出来るんじゃないかと思ったけど、これは流石にかなり昔にやられてた。 ProxyでMixin - lambda {|diary| lambda { diary.succ! } }.call(hatena) 呼び出されたメソッドがどのクラス/インタフェースに載ってるのかをMethodのgetDeclaringClass()で取得出来…