Struts 2.1フレームワークの最新バージョンである、バージョン2.1(リンク)がリリースされた。このリリースにおいて、より多くのコードをプラグイン・フレームワークへリファクタリングすること、コンベンション・プラグインの追加によるXMLコンフィグレーションの削減、そしてRESTサポートの改善に焦点を当てた変更による重要なアップグレードが示された。
筆者は、いくつかの質問に回答するため、このリリースに尽力した人物の1人であるMusachy Barroso氏とインタビューを行った。
2.0と2.1の大きな違いは何でしょうか。
2.1(StrutsおよびXwork)では多くのバグが修正されています。2.1には、REST、Convention、そしてJava Templateといった、Struts 2を我々が望む方向に導くような新しいプラグインが備わっています。
多くの機能がプラグインに移行されましたが、なぜそうされたのかコメントを頂けますか。
「核」となる機能のみをstrutsのコアに残し、他をプラグインに移すというのが我々の考えです。これにより、コード・ベースの維持や、Dojoといった以後サポートしないものを省略することがより容易になります。先に挙げたプラグインを用いなければ、小さなStrutsフットプリントを除き、これらの変更点はユーザに何のメリットももたらしません。
なぜajaxタグが重要視されなくなったかについてお話し頂けますか。
Struts 2 AjaxタグはDojo 0.4.xをベースにしており、これを最新バージョンのDojoに移植することは全てを書き換えることになるでしょう。Dojoは、新しいバージョンが頻繁に登場し、マイナーなバージョン間であってもコードが変わってしまうため、常に動向に通じるのが難しいことで知られています。タグはDojoが提供する機能を全て備えているわけではないので、ユーザは結局Dojoをそのまま使用することが多くなります。このような理由と、進んでDojoタグを扱おうという人が少ないことから、Ajaxタグを控えざるを得ませんでした。
なぜコードビハインド・プラグインがコンベンション・プラグインとなったのでしょうか。またどのような新機能が導入されているのでしょうか。
ConventionはBrian Pontarelli氏が外部プロジェクトとして開発し、その後Strutsにもたらされました。Conventionでは、クラスパスのスキャンが向上しており、より高速です。そしてさらに多くのコンフィグレーション要素、優れたロギング、多くのコンフィグレーション選択、コンフィグレーション・リロードをサポートしており、このことは立証されています。
Javaテンプレート・プラグインとは何ですか。
Java Template Plugin とは、Javaのみを使用して「単一のテーマ」の実装を提供するものです(標準の実装ではFreeMarkerを利用します)。このプラグインのタグは、上書きされないという難点があるスタンダードなものより4倍から5倍速くなっています。
そのほかにも多くのウェブ・フレームワークが利用できますが、なぜ開発者はStruts 2を選択すべきだとお考えですか。
Struts 2は、おそらく利用可能なフレームワークで最も疎結合なものです。型にとらわれず、カスタマイズを全く、あるいはほとんどすることなく、多くの機能を使用できます。そして同じ知識を適用し、デフォルト動作を変更するためにプラグインを追加することができます。疎結合により、Strutsというものが存在することを知らずともビジネス・ロジックを描くこともできます。これにもかかわらず、Strutsはますます機能が高まり、現在、アクセスが極めて多い一部のサイトを強化しています。
何か付け加えることはありますか。
Struts 2.1には長い時間を要しましたが、我々は構築とリリース過程の改良に努力してきました。ですから、今後のリリースは頻度が上がることが期待できます。
Struts 2.1.6はhttp://struts.apache.org/2.1.6/index.htmlからダウンロードできる。