手机网站设计报告模板,网站建设与管理提纲,网站开发周期价格,Wordpress博客怎么盈利SpringEL初始 文章目录 SpringEL初始什么是SpringELSpring BeansSpring EL以XML形式Spring EL以注解形式启用自动组件扫描 执行输出 什么是SpringEL
Spring EL与OGNL和JSF EL相似#xff0c;计算评估或在bean创建时执行。此外#xff0c;所有的Spring表达式都可以通过XML或注…SpringEL初始 文章目录 SpringEL初始什么是SpringELSpring BeansSpring EL以XML形式Spring EL以注解形式启用自动组件扫描 执行输出 什么是SpringEL
Spring EL与OGNL和JSF EL相似计算评估或在bean创建时执行。此外所有的Spring表达式都可以通过XML或注解我们将学习如何使用Spring表达式语言(SpEL)注入字符串整数Bean到属性无论是在XML和注释
Spring Beans
两个简单Bean后来利用 SpEL 注入值到属性在 XML 和 注释。
public class Customer {private Item item;private String itemName;}public class Item {private String name;private int qty;}Spring EL以XML形式
使用 SpEL关闭的#{ SpEL expression }括号请参阅XML bean定义文件下面的例子
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdbean iditemBean classcom.yiibai.core.Itemproperty namename valueitemA /property nameqty value10 //beanbean idcustomerBean classcom.yiibai.core.Customerproperty nameitem value#{itemBean} /property nameitemName value#{itemBean.name} //bean/beans#{itemBean} – 注入itemBean到customerBeanBean 的item属性。#{itemBean.name} – 注入itemBean的name属性到 “customerBean” bean的itemname属性。
Spring EL以注解形式
在注解使用使用SpEL必须通过注解注册您的组件。如果注册bean在XML和Java类中定义Value该Value将无法执行
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;//...}import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;Component(itemBean)
public class Item {Value(itemA) //inject String directlyprivate String name;Value(10) //inject interger directlyprivate int qty;public String getName() {return name;}//...
}启用自动组件扫描
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlns:contexthttp://www.springframework.org/schema/contextxsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsdcontext:component-scan base-packagecom.yiibai.core //beans在注解模式下可以使用Value定义Spring EL。在这种情况下一个String和Integer值直接注入到“itemBean”之后又注入“itemBean”到“customerBean”属性 执行输出
运行它无论是使用 SpEL在XML 还是注释都显示了同样的结果
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class App {public static void main(String[] args) {ApplicationContext context new ClassPathXmlApplicationContext(applicationContext.xml);Customer obj (Customer) context.getBean(customerBean);System.out.println(obj);}
}输出结果
Customer [itemItem [nameitemA, qty10], itemNameitemA]