Définitions de beans

Définitions de haricots groovy

1. Vue d'ensemble

Dans cet article rapide, nous allons nous concentrer sur la façon dont nous pouvons utiliser une configuration basée sur Groovy dans nos projets Java Spring.

2. Les dépendances

Avant de commencer, nous devons ajouter la dépendance à notre fichierpom.xml. Nous devons également ajouter un plugin pour pouvoir compiler nos fichiers Groovy.

Ajoutons d'abord la dépendance de Groovy à notre fichierpom.xml:


    org.codehaus.groovy
    groovy-all
    2.4.12

Maintenant, ajoutons le plugin:


    maven-compiler-plugin
    3.7.0
    
        groovy-eclipse-compiler
        true
        1.8
        1.8
        ${project.build.sourceEncoding}
    
    
        
            org.codehaus.groovy
            groovy-eclipse-compiler
            2.9.2-01
        
    

Ici, nous utilisons le compilateur Maven pour compiler le projet à l'aide du compilateur Groovy-Eclipse. Cela peut varier en fonction de l'EDI utilisé.

Les dernières versions de ces bibliothèques se trouvent surMaven Central.

3. Définition des haricots

Depuis la version 4, Spring fournit un support pour les configurations basées sur Groovy. Cela signifie queGroovy classes can be legitimate Spring beans.

Pour illustrer cela, nous allons définir un bean en utilisant la configuration Java standard, puis nous allons configurer le même bean en utilisant Groovy. De cette façon, nous pourrons voir la différence.

Créons une classe simple avec quelques propriétés:

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

    // standard getters and setters
}

Il est important de se souvenir des getters / setters - ils sont essentiels au bon fonctionnement du mécanisme.

3.1. Configuration Java

Nous pouvons configurer le même bean en utilisant une configuration basée sur Java:

@Configuration
public class JavaBeanConfig {

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

        return jPerson;
    }
}

3.2. Configuration Groovy

Nous pouvons maintenant voir la différence lorsque nous utilisons Groovy pour configurer le bean créé précédemment:

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

Notez qu'avant de définir la configuration des beans, nous devons importer lesJavaPersonBean class. également,inside the beans block, we can define as many beans as we need.

Nous avons défini nos champs comme privés et bien queGroovy makes it look like it’s accessing them directly, it’s doing it using provided getters/setters.

4. Paramètres de bean supplémentaires

Comme avec la configuration XML et Java, nous ne pouvons pas configurer uniquement des beans.

Si nous devons définir unalias pour notre bean, nous pouvons le faire facilement:

registerAlias("bandsBean","bands")

Si nous voulons définir lesscope: du bean

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

Pour ajouter des rappels de cycle de vie pour notre bean, nous pouvons faire:

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

Nous pouvons également spécifier l'héritage dans la définition du bean:

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

Enfin, si nous devons importer des beans précédemment définis à partir d'une configuration XML, nous pouvons le faire en utilisant lesimportBeans():

importBeans("somexmlconfig.xml")

5. Conclusion

Dans ce tutoriel, nous avons vu comment créer des configurations de beans Spring Groovy. Nous avons également abordé la définition de propriétés supplémentaires sur nos beans, telles que leurs alias, leurs portées, leurs parents, leurs méthodes d'initialisation ou de destruction et la manière d'importer d'autres beans définis par XML.

Bien que les exemples soient simples, ils peuvent être étendus et utilisés pour créer tout type de configuration Spring.

Un exemple de code complet utilisé dans cet article se trouve dans nosGitHub project. Ceci est un projet Maven, vous devriez donc pouvoir l’importer et le lancer tel quel.