ヒント集

スクリプト言語の機能を利用する

groovy-seasarはGroovyにそなわったスクリプト言語の機能を利用して、 XMLとSelだけでは自然に表現できない設定を簡単に実現できます。

例えば、インスタンスを直接作成しargへと渡すことができます。

component(TargetClass) {
    arg(new BigDecimal('123.5'))
}

もちろん、変数の利用や、オブジェクトに対してメッセージを送ることもできます。

component(TargetClass) {
    // java.util.Calendarオブジェクトの生成と設定
    cal = Calendar.getInstance()
    cal.clear()
    cal.set(Calendar.YEAR,  2004)
    cal.set(Calendar.MONTH, 4)
    cal.set(Calendar.DATE,  31)
    // argとして登録
    arg(cal)
}

デバッグ

条件分岐を利用して、デバッグ時にフラグを立てることでアドバイスを有効にすることができます。

builder.components(){
    DEBUG = true // デバッグ用フラグ
    if(DEBUG){
        component(class:TraceAdvice, name:"traceAdvice")
    }
    component(TargetClass){
        if(DEBUG){ aspect(advice:"traceAdvice") }
    }
}

外部リソースの利用

登録するコンポーネントを決定するために、 外部ファイルを読み込む必要があるときやデータベースを参照する必要があるとき、 groovy-seasarはそのための柔軟な手段を提供します。

component(TargetClass){
    res    = ResourceBundle.getBundle("resource")
    plugin = Class.forName(res.String("plugin.class"))
    prop(name:"pluginClass", value:plugin)
}