なぜSpring?

J2EEデベロッパのAlexはJ2EEモジュールを書く際に、EJBを使うことになり、それに伴って、幾つかのクラスを書かなければならなかった。それでXDocletをプロジェクトに導入した。XDocletはコードジェネレーションツールなので、EJBの各種必要ファイルを1つのソースコードから生成できる。おかげで、Alexの煩雑な業務を減らせて、うまくやりくりすることができた。でも実際問題、ビジネス層のManagerクラスにメソッドを追加する場合、どうすべきなんだ!?いくつかのビジネスロジックを書いて、ソースが正しいかテストしようとした。あ”でもEJBモジュールだから、テストにはEJBコンテナが必要だ。検証コードには同じJ2EEコンテナ上で動作するサーブレット書こう!これでテストが正しく実行できるぞ。問題解決!!しかーし、テストは失敗してしまった。何度直しても失敗する。Alexは考えた。このテストに掛かる時間のサイクル長いよ。事実、J2EEコンテナ上で走らせているわけだしさ。こりゃだんだんフラストレーション溜まるよ。なんで待たなきゃいけないんだー!Alexは考えた。永続サービスのEntityBean使ってないのに、なんで俺はEJB使ってんだ?セキュリティ管理も使ってないぞ。そっか、トランザクション管理使うからか。なんか他にいい方法ないかなぁー。