クイックスタート

groovy-seasarはS2Containerに標準で提供されている XMLファイルによる設定を置き換える目的で作成されたものです。 この章ではS2Containerについてのある程度の知識を前提として、 それをgroovy-seasarで置き換える方法について説明します。

XMLの置き換え

まずはじめの出発点として、下記のようなXMLによる設定があるものとします。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN"
    "http://www.seasar.org/dtd/components.dtd">
<components>
    <component name="foo" class="java.lang.Integer">
        <arg>0</arg>
    </component>
    <component class="java.util.Date">
        <property name="time">foo</property>
    </component>
</components>

XMLによる設定をgroovy-seasarに置き換えると下記のようになります。

import org.seasar.groovy.SeasarBuilder
new SeasarBuilder().components(){
    component(name: "foo", class: Integer){
        arg("0")
    }
    component(java.util.Date){
        prop(name: "time", ref: "foo")
    }
}

01行目で必要なライブラリをインポートしている以外は XMLによる設定とgroovy-seasarでのクロージャとが対応しているのがよくわかるかとおもいます。

この設定ファイルによって定義されるS2ContainerをJavaから呼び出すばあいは下記のようになります。

import org.seasar.framework.container.S2Container;
import org.seasar.framework.container.factory.S2ContainerFactory;

public class QuickStart {
	private static final String PATH = "quickstart/components.xml";
	public static void main(String[] args) {
        S2Container container = S2ContainerFactory.create(PATH);
        System.out.println(container.getComponent("foo"));
    }
}

groovy-seasarの場合もほとんどかわりません。

import org.seasar.framework.container.S2Container;
import org.seasar.groovy.S2ContainerGroovyFactory;

public class QuickStart {
private static final String PATH = "quickstart/components.groovy";
    public static void main(String[] args) {
        S2Container container = S2ContainerGroovyFactory(PATH);
        System.out.println(container.getComponent("foo"));
    }
}