-S03: 道路工事中
まずハンズオンのチュートリアルをはじめていくにあたって、Seasar2を起動するブートストラップが必要です。Seasar2は現在のところ、他のサーバーに軽量コンテナであるS2Containerが組み込まれる形で動作します。まず伝統的なHelloWorldプログラムとして、main(String)メソッドを持つコンソールアプリケーションでS2Container上の機能を説明していきます。コンソールの例示で機能解説が一巡したところで、Servletに組み込む例をやりましょう。
以下はmain(String)メソッドを持つブートストラップクラスです。
list03-1. Highway.java package tutorial.org.seasar.console; import org.seasar.framework.container.S2Container; import org.seasar.framework.container.factory.S2ContainerFactory; public class Highway { private static String PATH = "tutorial/org/seasar/console/car.xml"; public static void main(String[] args) { S2Container container = S2ContainerFactory.create(PATH); Car car = (Car)container.getComponent(Car.class); car.run(); } }
ブートストラップクラスから利用されるS2Container上に配置するコンポーネントです。Javaインターフェイスとして定義されます。S2Containerの標準的な仕様として、コンポーネントはそれぞれ外部に提供する機能内容だけを定義したインターフェイスを用意することが想定されています。
list03-2. Car.java package tutorial.org.seasar.console; public interface Car { public void run(); }
インターフェイスを実装したコンポーネントクラスです。伝統的な「Hello World」のSeasar2版をまず試してみましょう。
list03-3. HelloCar.java package tutorial.org.seasar.console; public class HelloCar implements Car { public void run() { System.out.println("My first car!"); } }
Javaクラスは以上です。次はコンポーネントの設定ファイルであるDeploymentDescriptor(DD)を記述します。Seasar2では多くの他のサーバー製品のようにXMLでDD記述を行います。
list03-4. car.xml <?xml version="1.0" encoding="UTF-8"?> <components> <component class="tutorial.org.seasar.console.HelloCar"/> </components>
これらを動作させると、
My first car!
とコンソールに表示されます。では、各コードの内容を丹念に見ていきましょう。