1. 概要

この簡単な記事では、JavaSpringプロジェクトでGroovyベースの構成を使用する方法に焦点を当てます。

2. 依存関係

開始する前に、pom.xmlファイルに依存関係を追加する必要があります。 Groovyファイルをコンパイルするためにプラグインも追加する必要があります。

最初にGroovyの依存関係をpom.xmlファイルに追加しましょう。

<dependency>
    <groupId>org.codehaus.groovy</groupId>
    <artifactId>groovy</artifactId>
    <version>2.5.10</version>
</dependency>

それでは、プラグインを追加しましょう。

<build>
    <plugins>
        //...
        <plugin>
            <groupId>org.codehaus.gmavenplus</groupId>
            <artifactId>gmavenplus-plugin</artifactId>
            <version>1.9.0</version>
            <executions>
                <execution>
                    <goals>
                        <goal>addSources</goal>
                        <goal>addTestSources</goal>
                        <goal>generateStubs</goal>
                        <goal>compile</goal>
                        <goal>generateTestStubs</goal>
                        <goal>compileTests</goal>
                        <goal>removeStubs</goal>
                        <goal>removeTestStubs</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

ここでは、すべての目標gmavenplus-pluginを使用します。

これらのライブラリの最新バージョンは、 MavenCentralにあります。

3. Beanの定義

バージョン4以降、SpringはGroovyベースの構成をサポートします。 これは、Groovyクラスが正当なSpringBeanになる可能性があることを意味します。

これを説明するために、標準のJava構成を使用してbeanを定義し、次にGroovyを使用して同じbeanを構成します。 このようにして、違いを確認できます。

いくつかのプロパティを持つ単純なクラスを作成しましょう。

public class JavaPersonBean {
    private String firstName;
    private String lastName;

    // standard getters and setters
}

ゲッター/セッターについて覚えておくことが重要です–メカニズムが機能するために重要です。

3.1. Java構成

Javaベースの構成を使用して同じBeanを構成できます。

@Configuration
public class JavaBeanConfig {

    @Bean
    public JavaPersonBean javaPerson() {
        JavaPersonBean jPerson = new JavaPersonBean();
        jPerson.setFirstName("John");
        jPerson.setLastName("Doe");
        
        return jPerson;
    }
}

3.2. Groovyの構成

これで、Groovyを使用して以前に作成したBeanを構成した場合の違いを確認できます。

beans {
    javaPersonBean(JavaPersonBean) {
        firstName = 'John'
        lastName = 'Doe'
    }
}

Bean構成を定義する前に、 JavaPersonBeanクラス。 また、 Beansブロック内で、必要な数のBeanを定義できます。

フィールドをプライベートとして定義しました。Groovyはフィールドに直接アクセスしているように見えますが、提供されているゲッター/セッターを使用してフィールドを実行しています。

4. 追加のBean設定

XMLおよびJavaベースの構成と同様に、Beanだけでなく構成することもできます。

Beanにaliasを設定する必要がある場合は、次のように簡単に設定できます。

registerAlias("bandsBean","bands")

beanのスコープを定義する場合:

{ 
    bean ->
        bean.scope = "prototype"
}

Beanのライフサイクルコールバックを追加するには、次のようにします。

{ 
    bean ->
        bean.initMethod = "someInitMethod"
        bean.destroyMethod = "someDestroyMethod"
}

Bean定義で継承を指定することもできます。

{ 
    bean->
        bean.parent="someBean"
}

最後に、以前に定義したBeanをXML構成からインポートする必要がある場合は、 importBeans():を使用してこれを行うことができます。

importBeans("somexmlconfig.xml")

5. 結論

このチュートリアルでは、SpringGroovyBean構成を作成する方法を説明しました。 また、エイリアス、スコープ、親、初期化または破棄のメソッド、他のXML定義のBeanをインポートする方法など、Beanに追加のプロパティを設定する方法についても説明しました。

例は単純ですが、拡張して、任意のタイプのSpring構成を作成するために使用できます。

この記事で使用されている完全なサンプルコードは、GitHubプロジェクトにあります。 これはMavenプロジェクトなので、インポートしてそのまま実行できるはずです。