Spring EL hello world exemple

Spring EL hello world example

Le Spring EL est similaire à OGNL et JSF EL, et évalué ou exécuté pendant le temps de création du bean. De plus, toutes les expressions Spring sont disponibles via XML ou annotation.

Dans ce tutoriel, nous vous montrons comment utiliserSpring Expression Language(SpEL), pour injecter String, integer et bean dans la propriété, à la fois en XML et en annotation.

1. Dépendance Spring EL

Déclare les jars Spring de base dans le fichier Mavenpom.xml, il téléchargera automatiquement les dépendances Spring EL.

Fichier: pom.xml

    
        3.0.5.RELEASE
    

    

        
        
            org.springframework
            spring-core
            ${spring.version}
        

        
            org.springframework
            spring-context
            ${spring.version}
        

    

2. Haricots de printemps

Deux beans simples, utilisent ensuite SpEL pour injecter des valeurs dans la propriété, en XML et en annotation.

package com.example.core;

public class Customer {

    private Item item;

    private String itemName;

}
package com.example.core;

public class Item {

    private String name;

    private int qty;

}

3. Spring EL en XML

Les SpEL sont entourés de#{ SpEL expression }, voir l'exemple suivant dans le fichier de définition de bean XML.



    
        
        
    

    
        
        
    

  1. #{itemBean} - injecte "itemBean" dans la propriété "item" du bean "customerBean".

  2. #\{itemBean.name} - injecte la propriété "name" de "itemBean" dans la propriété "itemName" du bean "customerBean".

4. EL de printemps dans l'annotation

Voir la version équivalente en mode annotation.

Note
Pour utiliser SpEL dans l'annotation, vous devez enregistrer votre composant via l'annotation. Si vous enregistrez votre bean en XML et définissez@Value dans la classe Java, l'exécution des@Value échouera.

package com.example.core;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component("customerBean")
public class Customer {

    @Value("#{itemBean}")
    private Item item;

    @Value("#{itemBean.name}")
    private String itemName;

    //...

}
package com.example.core;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component("itemBean")
public class Item {

    @Value("itemA") //inject String directly
    private String name;

    @Value("10") //inject interger directly
    private int qty;

    public String getName() {
        return name;
    }

    //...
}

Activez l'analyse automatique des composants.



    

En mode annotation, vous utilisez@Value pour définir Spring EL. Dans ce cas, vous injectez une valeur String et Integer directement dans le «itemBean», puis injectez le «itemBean» dans la propriété «customerBean».

5. Sortie

Exécutez-le, SpEL en XML et les annotations affichent le même résultat:

package com.example.core;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("SpringBeans.xml");

        Customer obj = (Customer) context.getBean("customerBean");
        System.out.println(obj);
    }
}

Sortie

Customer [item=Item [name=itemA, qty=10], itemName=itemA]

Télécharger le code source

Téléchargez-le -Spring3-EL-Hello-Worldr-Example.zip (6 Ko)