Re: 某巨大掲示板

96 :デフォルトの名無しさん :2006/12/18(月) 20:38:26
S2使ったプロジェクトって、一定規模以上になるとS2Unitが破綻しない?
Dao、Logic、その他膨大な数のクラスをエンハンスする必要があるから、
テストケースの初期化だけで何十秒もかかるようになる。
プロファイリングしたらJavassistボトルネックみたいだけど…。

そんなわけで (どんなわけで?),Seasar2.4 の S2TestCase (S2FrameworkTestCase も) は WARM deploy がデフォルトになってます.
WARM deploy ではコンポーネントは必要になったときに初めてコンポーネントの登録及び初期化が行われます.Javassist によるエンハンスもその時に行われます.
そんなわけで (どんなわけで?),SMART deploy を利用してもらえれば大規模プロジェクトでも上記のような問題は避けられると思います.


01:30 追記
「WARM deploy がデフォルト」と書きましたが,WARM deploy を有効にするには convention.diconcreator.diconcustomizer.dicon がクラスパス上に必要です.
ただし,s2container.dicon が存在する場合はそこで SMART deploy の設定がされているものと見なし,WARM deploy は設定されません.


Arrays#asList(T...)

を static import しておくと,

List<Integer> l = asList(1, 2, 3, 4, 5);

って書くことができます.
そんなわけで (どんなわけで?),件のコードは

import static java.util.Arrays.asList;

public class Sample {
    public static void main(String[] args) {
        int total = 0;
        for (int i : asList(1, 2, 3, 4, 5)) {
            total += i;
        }
        System.out.println(total);
    }
}

って書くことができます.
いやその,なんか見かけなかったなぁと思って.
っていうか,>|java|〜||< を使ってみたかっただけ.
でもでも,なんか微妙な色合いだなぁ.