-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!

とコンソールに表示されます。では、各コードの内容を丹念に見ていきましょう。