Spring EL Hello世界示例

Spring EL与OGNL和JSF EL相似,并在bean创建期间进行评估或执行。 另外,所有Spring表达式都可以通过XML或注释使用。

在本教程中,我们向您展示如何使用Spring Expression Language(SpEL)将String,integer和bean注入XML和注解属性中。

1. Spring EL依赖

在Maven pom.xml文件中声明核心Spring jar,它将自动下载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.mkyong.core;

public class Customer {

	private Item item;

	private String itemName;

}
package com.mkyong.core;

public class Item {

	private String name;

	private int qty;

}

3. XML中的Spring EL

SpEL包含在#{ SpEL expression } ,请参见XML bean定义文件中的以下示例。



	
		
		
	

	
		
		
	
	
  1. #{itemBean} –将“ itemBean”注入“ customerBean” bean的“ item”属性。
  2. #{itemBean.name} –将“ itemBean”的“ name”属性注入“ customerBean” bean的“ itemName”属性中。

4.带有注释的Spring EL

在注释模式下查看等效版本。

注意
要在注释中使用SpEL,必须通过注释注册组件。 如果使用XML注册bean并在Java类中定义@Value ,则@Value将无法执行。

package com.mkyong.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.mkyong.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。 在这种情况下,您可以将String和Integer值直接注入到“ itemBean ”中,然后再将“ itemBean”注入到“ customerBean ”属性中。

5.输出

运行它,XML中的SpEL和注释都显示相同的结果:

package com.mkyong.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 KB)

参考

  1. Spring EL参考

翻译自: https://mkyong.com/spring3/spring-el-hello-world-example/

你可能感兴趣的:(Spring EL Hello世界示例)