質問: struts2とspringとの連携のメリットが分らない ので教えてください。 アプリケーションコンテキストを得るために struts2とspringが連携していない場合は applicationcontext appcontext=new classpathxmlapplicationcontext("applicationcontext.xml"); の1行でできますが、 struts2とspringが連携している場合は actioncontext context=actioncontext.getcontext(); map, ? map=context.getcontextmap(); servletcontext application=(servletcontext) map.get(strutsstatics.servlet_context); webapplicationcontext appcontext=(webapplicationcontext) application.getattribute(webapplicationcontext.root_web_application_context_attribute); の長文の4行になります。 勿論この場合は最初の方法も使えます。 struts2とspringを連携しないほうがspringを簡単に使えるように思います。 設定ファイルの記述やプログラムコードが長くなるのにもかかわらず、 敢てstruts2とspringを連携するメリットを教えてください。
回答: struts2(画面)->spring2.5(business logic)->hibernate(data access object) なだけですよね? それぞれが依存性がないpojoで作成することができるため、 単体テストにおいて、テスト対象モジュール以外が未作成でも テスト可能というのが最大のメリットです。 単純に考えると、 business logicにて複数のエンティティを同時に更新することがなければあまり重要となることはないですが、 バージョンアップやポーティング対応で struts2を他の画面系frameworkに、 hibernateを他のdata access object frameworkに差し替えた場合に、 他の部品をを修正する必要がないため、 工数が削減できると考えられます。