文档章节

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

摆渡者
 摆渡者
发布于 2014/03/09 14:19
字数 430
阅读 338
收藏 1

    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://www.springframework.org/schema/util/spring-util-3.0.xsd

    然后配置Bean:

<!-- 使用util.priperties加载指定的资源文件 -->
<util:properties id="config" location="classpath:config_zh_CN.properties" />
<bean id="author" class="com.abc.Author">
    <!-- 在表达式中调用方法 -->
    p:name="#{'abcdef'.subString(0,3)}"
    p:obj="#{new java.lang.Object()}"
    <property name="books">
        <list>
            <!-- 在表达式中访问其他Bean的属性 -->
            <value>#{config.book1}</value>
            <value>#{config.book2}</value>
            <value>#{config.book3}</value>
        </list>
    </property>
</bean>

    上面的代码就是利用SpEL进行配置的,使用SpEL可以在配置文件中调用方法、创建对象(这种方式可以代替嵌套Bean语法),访问其他Bean的属性等等。总之,SpEL支持的语法都可以在这里使用,SpEL极大的简化了Spring配置。

© 著作权归作者所有

摆渡者
粉丝 342
博文 171
码字总数 206342
作品 0
浦东
程序员
私信 提问
Spring中的AOP(六)——定义切入点和切入点指示符

定义切入点 在前文(点击查看)中使用到的AdviceTest类中同一个切点(即* com.abc.service..advice(..)匹配的连接点)却重复定义了多次,这显然不符合软件设计的原则,为了解决这个问题,Asp...

摆渡者
2014/03/23
0
3
《Spring5学习》 03 运行时值注入

Spring的运行时值注入是为了在一些应用场景避免将属性值硬编码在配置类中而提供的解决方案,Spring目前提供了几种方式实现运行时值注入,下面我们分别来讲下 1 - Spring中的Environment 在S...

老韭菜
2018/08/14
0
0
spring2.0-2.5-3.0变化

忽然间想知道spring2.0到2.5 再到3.0的变化,就到网上搜索一下。方便查看而已 2.5的新特性 Spring2.5rc1发布了,一直想知道它葫芦里卖什么药,以下是文档里的change.log 1. JDK版本: JDK至...

dengzhangtao
2010/12/06
0
1
Spring表达式语言:SpEL(三)

本文为转载学习 原文链接:http://jinnianshilongnian.iteye.com/blog/1418311 5.4.1 xml风格的配置 SpEL支持在Bean定义时注入,默认使用“#{SpEL表达式}”表示,其中“#root”根对象默认可以...

heroShane
2014/02/02
0
0
最最简单的spring及AOP实例

一、简单的spring实现(annotation方式) bean类 测试类: 运行结果: (xml方式) bean类 xml配置文件applicationContext.xml(放在包com.hello下) 测试类: 二、注解方式实现aop(需要导入...

wangxuwei
2017/10/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

使用lombok配置数据

导入lombok后,便可省略entity中繁琐的get,set方法,并且在xml文件中也应写的更加简洁 1.在pom中添加依赖 <lombok.version>1.16.20</lombok.version> <!-- https://mvnrepository.com/arti......

沉迷于编程的小菜菜
8分钟前
0
0
Linux awk使用案例教程

awk脚本   awk脚本通常由以下3部分构成:  BEGIN{ 这里面放的是执行前的语句 }  END {这里面放的是处理完所有的行后要执行的语句 }  {这里面放的是处理每一行时要执行的...

Linux就该这么学
15分钟前
0
0
Hive(四)——Hive的其他配置

一、

ittzg
17分钟前
0
0
iOS 倒计时

1、SGLCountDown

_____1____
18分钟前
0
0
[算法]图的最短路径算法

Dijkstra算法(单源最短路径,时间复杂度O(n^2),堆优化后O((m+n)logn),贪心算法) Floyd算法(Floyd-Warshall,插点法)(多源最短路径,时间复杂度O(n^3),空间复杂度O(n^2),动态规划算法) ...

Danni3
29分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部