SpEL

Spring Bean定义中表达式语言的支持

好久不见. 提交于 2019-12-05 13:24:18
SpEL(Spring Expression Language,Spring表达式语言)的一个重要的作用就是扩展Spring容器的功能,允许在Bean定义中使用SpEL。XML配置文件和Annotation中都可以使用SpEL。在XML和Annotation中使用SpEL时,都需要使用#{ expression }的格式来包装表达式。 例如有如下的Author类: public class Author { private String name; private List<String> books; private Object obj; //省略getter 和 setter } 这个Author类需要注入name和books属性。当然,可以按照以前的方式进行配置,但如果使用SpEL,将可以对Spring配置文件进一步简化: 因为本例要用到Spring的p命名空间和util命名空间,故先在applicationContext.xml文件的<beans>元素中增加以下内容: xmlns:p="http://www.springframework.org/schema/p" xmlns:util="http://www.springframework.org/schema/util" http://www.springframework.org/schema/util http:

Spring表达式语言:SpEL(三)

霸气de小男生 提交于 2019-12-05 13:23:54
本文为转载学习 原文链接: http://jinnianshilongnian.iteye.com/blog/1418311 5.4.1 xml风格的配置 SpEL支持在Bean定义时注入,默认使用“#{SpEL表达式}”表示,其中“#root”根对象默认可以认为是ApplicationContext,只有ApplicationContext实现默认支持SpEL,获取根对象属性其实是获取容器中的Bean。 首先看下配置方式(chapter5/el1.xml)吧: <bean id="world" class="java.lang.String"> <constructor-arg value="#{' World!'}"/> </bean> <bean id="hello1" class="java.lang.String"> <constructor-arg value="#{'Hello'}#{world}"/> </bean> <bean id="hello2" class="java.lang.String"> <constructor-arg value="#{'Hello' + world}"/> <!-- 不支持嵌套的 --> <!--<constructor-arg value="#{'Hello'#{world}}"/>--> </bean> <bean id=