Весенний пример EL Hello World

Spring EL привет пример мира

Spring EL похож на OGNL и JSF EL и оценивается или выполняется во время создания компонента. Кроме того, все выражения Spring доступны через XML или аннотации.

В этом руководстве мы покажем вам, как использоватьSpring Expression Language(SpEL) для вставки String, integer и bean в свойство как в XML, так и в аннотации.

1. Spring EL Dependency

Объявляет основные jar-файлы Spring в файле Mavenpom.xml, он автоматически загружает зависимости Spring EL.

Файл: pom.xml

    
        3.0.5.RELEASE
    

    

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

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

    

2. Весенние бобы

Два простых bean-компонента, позже использующих SpEL для вставки значений в свойство, в XML и аннотации.

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 в XML

SpEL заключены в#{ SpEL expression }, см. Следующий пример в файле определения компонента XML.



    
        
        
    

    
        
        
    

  1. #{itemBean} - вставить «itemBean» в свойство «item» компонента «customerBean».

  2. #\{itemBean.name} - вставить свойство «name» «itemBean» в свойство «itemName» bean-компонента «customerBean».

4. Spring EL в аннотации

Смотрите эквивалентную версию в режиме аннотации.

Note
Чтобы использовать SpEL в аннотации, вы должны зарегистрировать свой компонент через аннотацию. Если вы зарегистрируете свой bean-компонент в XML и определите@Value в классе Java,@Value выполнить не удастся.

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;
    }

    //...
}

Включить автоматическое сканирование компонентов.



    

В режиме аннотации вы используете@Value для определения Spring EL. В этом случае вы вставляете строковое и целочисленное значение непосредственно в «itemBean», а затем вставляете «itemBean» в свойство «customerBean».

5. Выход

Запустите его, и SpEL в XML, и аннотация отобразят один и тот же результат:

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);
    }
}

Выход

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

Скачать исходный код

Скачать -Spring3-EL-Hello-Worldr-Example.zip (6 КБ)